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

MySQL 日期時間函數完整使用手冊(上)

     編輯:MySQL 資料庫相關知識

日期部件擷取

  • DAYOFWEEK(date):週索引(1=週日...7=週六)
  • WEEKDAY(date):週索引(0=週一...6=週日)
  • DAYOFMONTH(date):月份中的日期(1-31)
  • DAYOFYEAR(date):年中的第幾天(1-366)
  • MONTH(date):月份(1-12)
  • DAYNAME(date):星期名稱
  • MONTHNAME(date):月份名稱
  • QUARTER(date):季度(1-4)
  • WEEK(date[,first]):週數,first=0 週日起算,=1 週一起算
  • YEAR(date):年份(1000-9999)
  • HOUR(time)、MINUTE(time)、SECOND(time):時/分/秒

期間運算

  • PERIOD_ADD(P,N):期間 P(YYMM/YYYYMM) 加 N 月,回傳 YYYYMM
  • PERIOD_DIFF(P1,P2):兩期間月份差

日期加減運算

DATE_ADD(date, INTERVAL expr type)、DATE_SUB、ADDDATE、SUBDATE(後兩者為同義詞)。MySQL 3.23+ 可直接用 +/- 運算子。

type 與 expr 格式對照:

type含義expr 格式
SECOND秒SECONDS
MINUTE分MINUTES
HOUR時HOURS
DAY天DAYS
MONTH月MONTHS
YEAR年YEARS
MINUTE_SECOND分:秒"MINUTES:SECONDS"
HOUR_MINUTE時:分"HOURS:MINUTES"
DAY_HOUR天 時"DAYS HOURS"
YEAR_MONTH年-月"YEARS-MONTHS"
HOUR_SECOND時:分:秒"HOURS:MINUTES:SECONDS"
DAY_MINUTE天 時:分"DAYS HOURS:MINUTES"
DAY_SECOND天 時:分:秒"DAYS HOURS:MINUTES:SECONDS"

允許任意標點分隔符。若 date 為 DATE 且運算僅涉及年月日,結果為 DATE,否則為 DATETIME。間隔值過短時 MySQL 假設省略高位部份(如 DAY_SECOND 給 "1:10" 視為分:秒)。非法日期回傳 NULL。月份天數不足時自動調整至該月最大天數。

範例

SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND;    -- 1998-01-01 00:00:00
SELECT DATE_ADD("1997-12-31 23:59:59", INTERVAL 1 DAY); -- 1998-01-01 23:59:59
SELECT DATE_SUB("1998-01-01 00:00:00", INTERVAL "1 1:1:1" DAY_SECOND); -- 1997-12-30 22:58:59
SELECT EXTRACT(YEAR_MONTH FROM "1999-07-02 01:02:03"); -- 199907
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved