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

MySQL 內建日期函數 CURDATE() 應用:擷取年、月、日、完整日期

     編輯:MySQL 資料庫相關知識

CURDATE() 回傳目前日期 (YYYY-MM-DD),配合 YEAR()、MONTH()、DAY()、DAYOFMONTH() 可快速拆解日期成分,無需傳遞參數。

常用範例

SELECT YEAR(CURDATE());        -- 2023
SELECT MONTH(CURDATE());       -- 10
SELECT DAY(CURDATE());         -- 15
SELECT DAYOFMONTH(CURDATE());  -- 15 (同 DAY)
SELECT CURDATE();              -- 2023-10-15

進階應用:動態 WHERE 條件

-- 本月資料
SELECT * FROM orders
WHERE YEAR(order_date) = YEAR(CURDATE())
  AND MONTH(order_date) = MONTH(CURDATE());

-- 今天資料
SELECT * FROM logs
WHERE log_date = CURDATE();

-- 近 7 天 (含今天)
SELECT * FROM events
WHERE event_date BETWEEN DATE_SUB(CURDATE(), INTERVAL 6 DAY) AND CURDATE();

相關函數補充

函數回傳值範例
NOW() / SYSDATE()日期時間 (YYYY-MM-DD HH:MM:SS)2023-10-15 14:30:00
CURTIME()時間 (HH:MM:SS)14:30:00
DATE(NOW())等同 CURDATE()2023-10-15
LAST_DAY(date)該月最後一天日期2023-10-31
QUARTER(date)季度 (1-4)4
WEEKDAY(date)週幾 (0=一..6=日)6

效能提示

WHERE 條件直接使用 CURDATE() 不會導致索引失效,但避免在欄位上包裹函數 (如 DATE(log_date) = CURDATE()),改用區間比較:

WHERE log_date >= CURDATE() AND log_date < DATE_ADD(CURDATE(), INTERVAL 1 DAY)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved