首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 日期時間函數完整參考與範例

     編輯:MySQL 綜合教學

常用日期時間函數速查表

函數說明範例結果
DAYOFWEEK(date)星期幾(1=週日 ... 7=週六,ODBC 標準)DAYOFWEEK('1998-02-03')3
WEEKDAY(date)星期幾(0=週一 ... 6=週日)WEEKDAY('1997-10-04 22:23:00')5
DAYOFMONTH(date)月份中的第幾天(1-31)DAYOFMONTH('1998-02-03')3
DAYOFYEAR(date)年份中的第幾天(1-366)DAYOFYEAR('1998-02-03')34
MONTH(date)月份數值(1-12)MONTH('1998-02-03')2
DAYNAME(date)星期英文名稱DAYNAME('1998-02-05')Thursday
MONTHNAME(date)月份英文名稱MONTHNAME('1998-02-05')February
QUARTER(date)季度(1-4)QUARTER('98-04-01')2
WEEK(date, first)第幾週;first=0 週日起算,1 週一起算WEEK('1998-02-03', 0)5

進階應用提示

  • 日期運算:搭配 DATE_ADD()、DATE_SUB()、DATEDIFF() 進行加減運算。
  • 格式化輸出:使用 DATE_FORMAT(date, format) 自訂顯示格式。
  • 時區處理:CONVERT_TZ() 在不同時區間轉換。
  • 效能注意:避免在 WHERE 條件對欄位使用函數(如 WHERE DATE(created_at) = '2024-01-01'),會導致索引失效;改用範圍查詢 created_at >= '2024-01-01' AND created_at < '2024-01-02'。

常見場景範例

-- 取得本週一 00:00:00
SELECT DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY);

-- 取得上個月第一天
SELECT DATE_SUB(DATE_SUB(CURDATE(), INTERVAL DAYOFMONTH(CURDATE())-1 DAY), INTERVAL 1 MONTH);

-- 年齡計算
SELECT FLOOR(DATEDIFF(CURDATE(), birth_date)/365.25) AS age FROM users;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved