SQLで日付から月を抽出する方法

概要: このチュートリアルでは、いくつかの日付関数を使用して、SQLで日付から月を抽出する方法を学びます。

特定の日付から月を抽出するには、EXTRACT()関数を使用します。構文は以下のとおりです。

EXTRACT(MONTH FROM date)
Code language: SQL (Structured Query Language) (sql)

この構文では、月から抽出する日付をEXTRACT()関数に渡します。日付は、日付リテラル、または日付値に評価される式とすることができます。

EXTRACT()関数は、日付の月を表す数値を返します。

次の例は、2018年8月1日の日付から月を抽出する方法を示しています。

SELECT EXTRACT(MONTH FROM '2018-08-01')
Code language: SQL (Structured Query Language) (sql)

結果は予想通り8です。

8
Code language: SQL (Structured Query Language) (sql)

現在の月を取得するには、CURRENT_TIMESTAMP関数を使用し、それをEXTRACT()関数に渡します。

SELECT EXTRACT(MONTH FROM CURRENT_TIMESTAMP)
Code language: SQL (Structured Query Language) (sql)

EXTRACT()関数は、MySQLOraclePostgreSQLでサポートされているSQL標準関数です。

SQL Serverを使用する場合は、MONTH()関数またはDATEPART()関数を使用して、日付から月を抽出できます。

たとえば、次のステートメントはSQL Serverで現在の月を返します。

SELECT MONTH(CURRENT_TIMESTAMP);

SELECT DATEPART(month, CURRENT_TIMESTAMP);
Code language: SQL (Structured Query Language) (sql)

SQL Serverと同様に、MySQLも日付から月を返すMONTH()関数をサポートしています。

SQLiteはEXTRACT()MONTH()DATEPART()関数をサポートしていません。日付から月を抽出するには、strftime()関数を次のように使用します。

SELECT strftime('%m', CURRENT_TIMESTAMP)
Code language: SQL (Structured Query Language) (sql)

このチュートリアルでは、SQLで日付から月を抽出するためのさまざまな関数の使用方法を学習しました。

このチュートリアルは役に立ちましたか?