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

概要: このチュートリアルでは、SQLで日付から月の日にちを抽出する方法を学びます。

指定された日付から月の日にちを抽出するには、EXTRACT() 関数を使用します。以下に構文を示します。

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

この構文では、月の日にちを抽出したい日付を EXTRACT() 関数に渡します。日付は、有効な日付リテラルまたは日付値に評価される式である必要があります。

EXTRACT() 関数は、入力された日付の月の日にちを表す数値を返します。

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

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

このステートメントは次の出力を生成しました。

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

現在の日付の日を取得するには、EXTRACT() 関数内で CURRENT_TIMESTAMP 関数を次のように使用します。

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

EXTRACT() 関数は、MySQLOracle、およびPostgreSQLでサポートされているSQL標準関数であることに注意してください。

SQL Server は EXTRACT() 関数をサポートしていません。SQL Serverを使用する場合は、代わりに DAY() または DATEPART() 関数を使用して、日付から月の日にちを抽出できます。

たとえば、以下の両方のステートメントは、SQL Serverで現在の日付の日を返します。

SELECT DAY(CURRENT_TIMESTAMP);

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

EXTRACT() 関数を提供することに加えて、MySQLは、日付から月の日にちを返す DAY() 関数をサポートしています。

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

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

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

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