【MySQL】日付・時刻系関数

~簡単な自己紹介~

  • 嫁と猫3匹と暮らすフルリモートの三十路SE
  • ブリッジSE的なポジションを務めることが多く、チーム運営、顧客折衝、ベンダーコントロールが得意
  • 投資・節約・副業で資産形成中
  • 現在の金融資産は約1,650万円、めざせアッパーマス層(資産3,000万円)

MySQLの日付・時刻の取得やフォーマット、計算の使い方をまとめました。

内容は随時追加していきます。

現在日付・現在時刻を取得する

現在日時

SELECT
    NOW(),
    SYSDATE()
;

↓結果↓

+---------------------+---------------------+
| NOW()               | SYSDATE()           |
+---------------------+---------------------+
| 2023-12-12 17:26:32 | 2023-12-12 17:26:32 |
+---------------------+---------------------+

現在日付

SELECT CURDATE(); -- 例:2023-12-12

○○を取得する/フォーマット

年月日(DATE)

SELECT DATE('2023/03/10 11:22:33'); -- 2023-03-10

年(YEAR)

SELECT YEAR('2023/03/10'); -- 2023

月(MONTH)

SELECT MONTH('2023/03/10'); -- 3

日(DAY)

SELECT DAY('2023/01/10'); -- 10

曜日(DAYOFWEEK/WEEKDAY)

戻り値が異なるだけで、どちらでも曜日は取得できます。

SELECT
    DAYOFWEEK('2024-04-01'), -- 2
    WEEKDAY('2024-04-01')    -- 0
;

戻り値の一覧は下記のとおりです。

曜日DAYOFWEEKWEEKDAY
16
20
31
42
53
64
75

日付の加算・減算

n日後・n日前

SELECT
    ADDDATE('2023/01/01', INTERVAL 10 DAY), -- 2023-01-11 
    ADDDATE('2023/01/01', INTERVAL -10 DAY) -- 2022-12-22
;

n月後・n月前

SELECT
    ADDDATE('2023/01/01', INTERVAL 1 MONTH),
    ADDDATE('2023/01/01', INTERVAL -1 MONTH)

n年後・n年前

SELECT
    ADDDATE('2023/01/01', INTERVAL 1 YEAR),
    ADDDATE('2023/01/01', INTERVAL -1 YEAR)

n週後・n週前

SELECT
    ADDDATE('2023/01/01', INTERVAL 1 WEEK),
    ADDDATE('2023/01/01', INTERVAL -1 WEEK)

以上になります。

お疲れさまでした。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です