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);
[実行結果]
この例では、現在の日時が 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);
[実行結果]
この例では、現在時刻が 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 曜日;
[実行結果]
この例では、実行時の日付が 2022-03-08 で、火曜日です。 WEEKDAY(@date) は 1 を返すので「火曜日」が取得できています。
以上、MySQL のよく使う日付関数の YEAR()・MONTH()・DAY()・WEEKDAY() などについてご説明しました。