YEAR(date) -- 年
QUARTER(date) -- 季 1-4
MONTH(date) -- 月 1-12
DAY(date) -- 日 1-31
DAYOFMONTH(date) -- 同 DAY()
DAYOFYEAR(date) -- 年內天數 1-366
WEEK(date[,mode]) -- 週數,mode 見下表
WEEKDAY(date) -- 週幾 0(一)-6(日)
DAYOFWEEK(date) -- 週幾 1(日)-7(六)
DAYNAME(date) -- 週名
MONTHNAME(date) -- 月名
| mode | 週起始 | 回傳範圍 | 備註 |
|---|---|---|---|
| 0 | Sunday | 0-53 | 預設 |
| 1 | Monday | 0-53 | |
| 2 | Sunday | 1-53 | |
| 3 | Monday | 1-53 | ISO 8601 |
| 4 | Sunday | 0-53 | |
| 5 | Monday | 0-53 | |
| 6 | Sunday | 1-53 | |
| 7 | Monday | 1-53 |
注意:WEEK('2000-01-01',0) 回傳 0(屬上一年最後一週),需用 mode 2/3 或 YEARWEEK() 取得正確年週。
YEARWEEK(date[,mode]) -- 回傳 YYYYWW,如 199952
-- 取得 ISO 年週
SELECT YEARWEEK('2000-01-01', 3); -- 199952
HOUR(time) -- 0-23
MINUTE(time) -- 0-59
SECOND(time) -- 0-59
DATE_ADD(date, INTERVAL expr unit)
DATE_SUB(date, INTERVAL expr unit)
ADDDATE(date, INTERVAL expr unit) -- 同 DATE_ADD
SUBDATE(date, INTERVAL expr unit) -- 同 DATE_SUB
date + INTERVAL expr unit
date - INTERVAL expr unit
| unit | expr 格式 |
|---|---|
| DAY | DAYS |
| MONTH | MONTHS |
| YEAR | YEARS |
| DAY_HOUR | "DAYS HOURS" |
| DAY_MINUTE | "DAYS HOURS:MINUTES" |
| DAY_SECOND | "DAYS HOURS:MINUTES:SECONDS" |
| YEAR_MONTH | "YEARS-MONTHS" |
EXTRACT(unit FROM date)
-- 範例
SELECT EXTRACT(YEAR_MONTH FROM '2024-05-20 14:30:00'); -- 202405
SELECT EXTRACT(DAY_HOUR FROM '2024-05-20 14:30:00'); -- 2014
TO_DAYS(date) -- 日期轉絕對天數(從 year 0)
FROM_DAYS(N) -- 天數轉日期
-- 注意:不適用 1582 年格里曆改制前日期
DATE_FORMAT(date, format) -- 完整格式化
TIME_FORMAT(time, format) -- 僅時間部件
格式符同前文,新增 %X、%x(ISO 年)、%V、%v(ISO 週)。
NOW() / SYSDATE() / CURRENT_TIMESTAMP -- 日期時間
CURDATE() / CURRENT_DATE -- 日期
CURTIME() / CURRENT_TIME -- 時間
UNIX_TIMESTAMP([date]) -- 秒數
FROM_UNIXTIME(unix_ts[,format]) -- 格式化時間戳
SEC_TO_TIME(seconds) -- 秒數 -> HH:MM:SS
TIME_TO_SEC(time) -- 時間 -> 總秒數
PERIOD_ADD(P, N) -- P=YYMM/YYYYMM,加 N 月
PERIOD_DIFF(P1, P2) -- 月數差