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

MySQL 日期函數 YEAR()、MONTH()、DAYOFMONTH() 詳解與實戰範例

     編輯:MySQL 資料庫相關知識

函數速查

函數返回值範例(假設今天 2013-06-24)
YEAR(date)年份(4 位數)YEAR(CURDATE()) → 2013
MONTH(date)月份(1-12)MONTH(CURDATE()) → 6
DAYOFMONTH(date)日期(1-31)DAYOFMONTH(CURDATE()) → 24
DAY(date)同 DAYOFMONTHDAY(CURDATE()) → 24
DAYOFWEEK(date)星期(1=星期日)DAYOFWEEK(CURDATE()) → 2
DAYOFYEAR(date)年內第幾天DAYOFYEAR(CURDATE()) → 175

常用組合場景

-- 按年月分組統計
SELECT YEAR(created_at) AS yr, MONTH(created_at) AS mo, COUNT(*)
FROM orders
GROUP BY yr, mo
ORDER BY yr, mo;

-- 取本月第一天/最後一天
SELECT DATE_FORMAT(CURDATE(), '%Y-%m-01') AS first_day;
SELECT LAST_DAY(CURDATE()) AS last_day;

-- 生日查詢:本月過壽的用戶
SELECT * FROM users WHERE MONTH(birthday) = MONTH(CURDATE());

注意事項

  • 參數可為 DATE、DATETIME、TIMESTAMP、字符串日期。
  • 若列為 NULL,返回 NULL。
  • 大量數據按函數列查詢會導致索引失效,建議冗余存儲年/月列或使用生成列(MySQL 5.7+)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved