首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 日期時間函數詳細參考手冊(含 WEEK 模式、YEARWEEK、EXTRACT)

     編輯:MySQL 資料庫相關知識

核心函數分類速查

日期部件提取

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)     -- 月名

WEEK() 模式對照表

mode週起始回傳範圍備註
0Sunday0-53預設
1Monday0-53
2Sunday1-53
3Monday1-53ISO 8601
4Sunday0-53
5Monday0-53
6Sunday1-53
7Monday1-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 格式

unitexpr 格式
DAYDAYS
MONTHMONTHS
YEARYEARS
DAY_HOUR"DAYS HOURS"
DAY_MINUTE"DAYS HOURS:MINUTES"
DAY_SECOND"DAYS HOURS:MINUTES:SECONDS"
YEAR_MONTH"YEARS-MONTHS"

EXTRACT 提取間隔

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) -- 月數差
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved