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

MySQL 日期時間函數完整應用指南

     編輯:MySQL 資料庫相關知識

日期屬性提取函數

函數說明範例結果
DAYOFWEEK(date)星期索引 (1=週日..7=週六)SELECT DAYOFWEEK('2007-10-31'); → 4
WEEKDAY(date)星期索引 (0=週一..6=週日)SELECT WEEKDAY('2007-10-31'); → 2
DAYOFMONTH(date)月份中的日期 (1-31)SELECT DAYOFMONTH('2007-10-31'); → 31
DAYOFYEAR(date)年度中的天數 (1-366)SELECT DAYOFYEAR('2007-10-31'); → 304
MONTH(date)月份 (1-12)SELECT MONTH('2007-10-31'); → 10
DAYNAME(date)星期名稱SELECT DAYNAME('2007-10-31'); → 'Wednesday'
MONTHNAME(date)月份名稱SELECT MONTHNAME('2007-10-31'); → 'October'
QUARTER(date)季度 (1-4)SELECT QUARTER('2007-10-31'); → 4
WEEK(date[,mode])週數 (0-53),mode=0 週日起算,1 週一起算WEEK('1998-02-20',1); → 8
YEAR(date)年份 (1000-9999)SELECT YEAR('98-02-03'); → 1998

時間屬性提取函數

函數說明範例
HOUR(time)小時 (0-23)HOUR('10:05:03') → 10
MINUTE(time)分鐘 (0-59)MINUTE('10:05:03') → 5
SECOND(time)秒數 (0-59)SECOND('10:05:03') → 3

期間運算函數

函數說明範例
PERIOD_ADD(P,N)期間 P (YYMM/YYYYMM) 加 N 月PERIOD_ADD(9801,2) → 199803
PERIOD_DIFF(P1,P2)兩期間月份差PERIOD_DIFF(9802,199703) → 11

日期加減運算:DATE_ADD / DATE_SUB / ADDDATE / SUBDATE

MySQL 3.22+ 支援,3.23+ 可用 +/- 運算子簡化。INTERVAL expr type 指定間隔類型:

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"

實戰範例

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_ADD("1997-12-31 23:59:59", INTERVAL "1:1" MINUTE_SECOND); -- 1998-01-01 00:01:00
SELECT DATE_SUB("1998-01-01 00:00:00", INTERVAL "1 1:1:1" DAY_SECOND); -- 1997-12-30 22:58:59
SELECT DATE_ADD("1998-01-01 00:00:00", INTERVAL "-1 10" DAY_HOUR); -- 1997-12-30 14:00:00
SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY); -- 1997-12-02

-- 擷取日期部份
SELECT EXTRACT(YEAR FROM "1999-07-02");           -- 1999
SELECT EXTRACT(YEAR_MONTH FROM "1999-07-02 01:02:03"); -- 199907
SELECT EXTRACT(DAY_MINUTE FROM "1999-07-02 01:02:03"); -- 20102

注意:若 date 為 DATE 型別且運算僅涉及年月日,結果為 DATE;否則為 DATETIME。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved