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

MySQL 獲取指定日期前 N 天日期:DATE_SUB 函數用法詳解

     編輯:MySQL 綜合教學

MySQL 獲取指定日期前 N 天日期:DATE_SUB 函數用法詳解

核心語法

DATE_SUB(date, INTERVAL expr unit)
  • date:起始日期(字串、日期列、NOW() 等)
  • expr:間隔數值
  • unit:單位(DAY、WEEK、MONTH、YEAR、HOUR、MINUTE、SECOND 等)

實戰示例

1. 獲取 2015-03-01 前 7 天
SELECT DATE_SUB('2015-03-01', INTERVAL 7 DAY);
-- 結果:2015-02-22
2. 獲取當前日期前 30 天
SELECT DATE_SUB(CURDATE(), INTERVAL 30 DAY);
3. 獲取當前時間前 2 小時
SELECT DATE_SUB(NOW(), INTERVAL 2 HOUR);
4. WHERE 條件中使用:查詢最近 7 天訂單
SELECT * FROM orders
WHERE create_time >= DATE_SUB(NOW(), INTERVAL 7 DAY);

相關函數對比

函數用途示例
DATE_SUB日期減去間隔DATE_SUB('2024-01-10', INTERVAL 5 DAY) → 2024-01-05
DATE_ADD日期加上間隔DATE_ADD('2024-01-10', INTERVAL 5 DAY) → 2024-01-15
SUBDATEDATE_SUB 別名SUBDATE('2024-01-10', 5) → 2024-01-05
ADDDATEDATE_ADD 別名ADDDATE('2024-01-10', 5) → 2024-01-15
DATEDIFF兩日期相差天數DATEDIFF('2024-01-15', '2024-01-10') → 5

注意事項

  • INTERVAL 關鍵字不可省略
  • 單位關鍵字不區分大小寫:DAY = day
  • 跨月/跨年自動處理:DATE_SUB('2024-03-01', INTERVAL 1 DAY) → 2024-02-29(閏年)
  • 搭配索引使用:WHERE create_time >= DATE_SUB(NOW(), INTERVAL 7 DAY) 可命中 create_time 索引
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved