【MySQL】日付・時刻系関数
~簡単な自己紹介~
- 嫁と猫3匹と暮らすフルリモートの三十路SE
- 投資・節約・副業で資産形成中
- 現在の金融資産は約1,750万円、めざせアッパーマス層(資産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
;
戻り値の一覧は下記のとおりです。
曜日 | DAYOFWEEK | WEEKDAY |
---|---|---|
日 | 1 | 6 |
月 | 2 | 0 |
火 | 3 | 1 |
水 | 4 | 2 |
木 | 5 | 3 |
金 | 6 | 4 |
土 | 7 | 5 |
日付の加算・減算
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)
以上になります。
お疲れさまでした。