MySQL のよく使う日付関数 1 - YEAR()・MONTH()・DAY()・WEEKDAY()

ここでは MySQL のよく使う日付関数の YEAR()・MONTH()・DAY()・WEEKDAY() などについてご説明します。

MySQL の 日付関数 YEAR()・MONTH()・DAY() の使い方

MySQL の YEAR()・MONTH()・DAY() は日付型の値を入力引数として受け取り、それぞれ年・月・日を返す日付関数です。

YEAR(date)
MONTH(date)
DAY(date)

有効な日付を渡した場合、YEAR() は 1000 ~ 9999 の 4 桁の年を返し、MONTH() は 1 ~ 12、DAY() は 1 ~ 31 の数字を返します。

日付でない値を渡した場合、エラーにはならず NULL を返します。

DAY() は DAYOFMONTH() のシノニム(synonym) で、どちらを使っても同じですが、DAYOFMONTH() よりも DAY() のほうがシンプルでいいなと個人的には思っています。


それでは、YEAR()・MONTH()・DAY() を使って、年・月・日を取得してみましょう。

今日の年・月・日を取得したい時は次のようにできます。

SET @date = NOW();

SELECT 	@date,
		YEAR(@date),
		MONTH(@date),
        DAY(@date);

[実行結果]

MySQL のよく使う日付関数 1 - YEAR()・MONTH()・DAY()・WEEKDAY() 1

この例では、現在の日時が 2022-03-08 22:05:47 で、YEAR() は 2022、MONTH() は 3、DAY() は 8 を返しています。


MySQL の 日付関数 HOUR()・MINUTE()・SECOND() の使い方

MySQL の HOUR()・MINUTE()・SECOND() は日時や時間型の値を入力引数として受け取り、それぞれ時・分・秒を返す日付関数です。

HOUR(datetime)
MINUTE(datetime)
SECOND(datetime)

有効な時間の値を渡した場合、HOUR() は 0 以上の整数を返し、MONTH() と SECOND() は 0 ~ 59 の数字を返します。

有効でない時間の値を渡した場合、エラーにはならず NULL を返します。


それでは、HOUR()・MINUTE()・SECOND() を使って、時・分・秒を取得してみましょう。

現在の時間の時・分・秒を取得したい時は次のようにできます。

SET @datetime = NOW();

SELECT 	@datetime,
		HOUR(@datetime),
        MINUTE(@datetime),
        SECOND(@datetime);

[実行結果]

MySQL のよく使う日付関数 1 - YEAR()・MONTH()・DAY()・WEEKDAY() 2

この例では、現在時刻が 2022-03-08 22:24:29 で、HOUR() は 22、MINUTE() は 24、SECOND() は 29 を返しています。


MySQL の 日付関数 WEEKDAY() の使い方

MySQL の WEEKDAY() は日付型の値を入力引数として受け取り、その曜日を返す日付関数です。

WEEKDAY(date)

有効な日付を渡した場合、WEEKDAY() は 0 ~ 6 の値を返します。 0 が月曜日、1 が火曜日と続き、、6 が日曜日です。

有効でない日付を渡した場合、エラーにはならず NULL を返します。


それでは、WEEKDAY() を使って、曜日を取得してみましょう。

今日の曜日を取得したい時は次のようにできます。

SET @date = NOW();

SELECT 	@date,
		 CASE WEEKDAY(@date)
            WHEN 0 THEN '月曜日'
			WHEN 1 THEN '火曜日'
			WHEN 2 THEN '水曜日'
            WHEN 3 THEN '木曜日'
			WHEN 4 THEN '金曜日'
			WHEN 5 THEN '土曜日'
			WHEN 6 THEN '日曜日'
		END AS 曜日;

[実行結果]

MySQL のよく使う日付関数 1 - YEAR()・MONTH()・DAY()・WEEKDAY() 3

この例では、実行時の日付が 2022-03-08 で、火曜日です。 WEEKDAY(@date) は 1 を返すので「火曜日」が取得できています。


以上、MySQL のよく使う日付関数の YEAR()・MONTH()・DAY()・WEEKDAY() などについてご説明しました。

© 2024 MySQL 入門