主要なRDBMSのほとんどには、日時の値から日、月、年を抽出できる機能があります。
一部のRDBMSはこれを行うための複数の方法を提供し、他のRDBMSはより制限されています。以下は、最も人気のあるいくつかのRDBMSの日付値から日、月、年を抽出する例です。
MySQL
MySQLには、日付から日、月、年を抽出するために使用できるいくつかの関数があります。これらの1つは、EXTRACT()
です。 機能:
SELECT
EXTRACT(DAY FROM '2035-12-19') AS Day,
EXTRACT(MONTH FROM '2035-12-19') AS Month,
EXTRACT(YEAR FROM '2035-12-19') AS Year;
結果:
+------+-------+------+ | Day | Month | Year | +------+-------+------+ | 19 | 12 | 2035 | +------+-------+------+
この場合、各日付部分を独自のフィールドに抽出しました。
すべての日付部分を同じフィールドに返す場合は、DATE_FORMAT()
関数はあなたのためにこれを行うことができます。
MySQLには、DAY()
など、日付から特定の日付部分を返す一連の関数もあります。 、MONTH()
、YEAR()
、など。
その他の例については、MySQLで日、月、年を返すを参照してください。
Oracle
OracleにはTO_CHAR()
があります 独自のフィールドまたはすべて単一のフィールドで日付部分を抽出するために使用できる関数。個々のフィールドでそれらを返す例を次に示します。
SELECT
TO_CHAR(DATE '2035-09-26', 'Day') AS Day,
TO_CHAR(DATE '2035-09-26', 'DD') AS DD,
TO_CHAR(DATE '2035-09-26', 'Month') AS Month,
TO_CHAR(DATE '2035-09-26', 'YYYY') AS Year
FROM DUAL;
結果:
DAY DD MONTH YEAR ____________ _____ ____________ _______ Wednesday 26 September 2035
この関数で日時値をフォーマットするために使用できるフォーマット要素のリストについては、Oracleの日時フォーマット要素の完全なリストを参照してください。
OracleにはEXTRACT()
もあります 同じ名前のMySQLの関数のように機能する関数。
SQL Server
SQL Serverには、日、月、年などの日付部分を返すことができる非常に幅広い関数があります。
DATEPART()
関数は、日付の指定された部分を返すために特別に設計されています:
DECLARE @date date = '2045-07-03';
SELECT
DATEPART(day, @date) AS DAY,
DATEPART(weekday, @date) AS WEEKDAY,
DATEPART(month, @date) AS MONTH,
DATEPART(year, @date) AS YEAR;
結果:
+-------+-----------+---------+--------+ | DAY | WEEKDAY | MONTH | YEAR | |-------+-----------+---------+--------| | 3 | 2 | 7 | 2045 | +-------+-----------+---------+--------+
同様の関数はDATENAME()
です 、日と月の名前を文字列として返すことができます。
SQL Serverには、DAY()
などの関数もあります。 、MONTH()
、YEAR()
、特定の日付部分を返すなど。
そして、FORMAT()
を忘れないでください 関数。同じフィールドのすべての日付部分を返したい場合に最適です。
その他の例については、SQL Serverで日付から日、月、年を取得する6つの関数を参照してください。
PostgreSQL
PostgreSQLには、日付から日付部分を返すことができるいくつかの関数があります。
DATE_PART()
の例を次に示します。 機能:
SELECT
DATE_PART('DAY', date '2035-10-30') AS "Day",
DATE_PART('DOW', date '2035-10-30') AS "DOW",
DATE_PART('DOY', date '2035-10-30') AS "DOY",
DATE_PART('MONTH', date '2035-10-30') AS "Month",
DATE_PART('YEAR', date '2035-10-30') AS "Year";
結果:
Day | DOW | DOY | Month | Year -----+-----+-----+-------+------ 30 | 2 | 303 | 10 | 2035
PostgreSQLにはEXTRACT()
もあります 構文が少し異なることを除いて、基本的に同じことを行う関数。
そしてTO_CHAR()
同じフィールドに複数の日付部分を返したい場合は、この関数を使用できます。
SQLite
SQLiteは、日付と時刻の関数に関してはさらに制限されています。ただし、STRFTIME()
は引き続き使用できます。 関数
SELECT STRFTIME('%d %m %Y', '2035-12-01');
結果:
01 12 2035
この例では、同じフィールドのすべての日付部分を返しました。ただし、これは必ずしも必須ではありません。それらを別のフィールドに返したい場合は、STRFTIME()
を呼び出すことができます。 複数回、それぞれ異なるフォーマット要素を使用:
SELECT
strftime('%d', '2035-12-01') AS "Day",
strftime('%m', '2035-12-01') AS "Month",
strftime('%Y', '2035-12-01') AS "Year";
結果:
Day Month Year --- ----- ---- 01 12 2035
MariaDB
MariaDBには、日時の値から日、月、年を返すことができるさまざまな関数が用意されています。
DATE_FORMAT()
の例を次に示します。 機能:
SELECT DATE_FORMAT('2023-07-25', '%W, %D %M %Y');
結果:
+-------------------------------------------+ | DATE_FORMAT('2023-07-25', '%W, %D %M %Y') | +-------------------------------------------+ | Tuesday, 25th July 2023 | +-------------------------------------------+
この関数を使用すると、すべての日付部分を1つのフィールドに返すことができます(これは必須ではありません。DATE_FORMAT()
を呼び出すことで、各日付部分を別のフィールドに簡単に返すことができます。 複数回、毎回異なるフォーマット文字列を使用します。
また、他のいくつかと同様に、MariaDBにもEXTRACT()
があります。 指定された日付部分を抽出する関数。
また、DAY()
など、日付部分ごとにさまざまな特定の関数もあります。 、MONTH()
、YEAR()
、など
完全な概要については、MariaDBの日付から日、月、年を取得する11の関数を参照してください。