mysql?DATE_ADD函數(shù)用法舉例
MySQL 中DATE_ADD()函數(shù)的用法詳解
DATE_ADD()是 MySQL 中用于日期時間計算的核心函數(shù),可對日期或時間進行加減操作。以下是完整用法說明:
基本語法
DATE_ADD(date, INTERVAL value unit)
- date:要操作的日期或時間值(如'2025-06-23'、NOW())。
- value:要添加的數(shù)值(正數(shù)為加,負數(shù)為減)。
- unit:時間單位,支持以下關(guān)鍵字:
- YEAR(年)、MONTH(月)、DAY(日)、HOUR(時)、MINUTE(分)、SECOND(秒)、WEEK(周)、QUARTER(季度)等。
常見示例
1.添加年 / 月 / 日
-- 給當前日期加1年 SELECT DATE_ADD(NOW(), INTERVAL 1 YEAR); -- 輸出:2026-06-23 20:36:00 -- 給指定日期減3個月 SELECT DATE_ADD('2025-06-23', INTERVAL -3 MONTH); -- 輸出:2025-03-23 -- 給時間加15天 SELECT DATE_ADD('2025-06-23 12:00:00', INTERVAL 15 DAY); -- 輸出:2025-07-08 12:00:00
2.同時操作多個單位
-- 加1年2個月3天 SELECT DATE_ADD('2025-06-23', INTERVAL '1-2-3' YEAR_MONTH_DAY); -- 輸出:2026-08-26 -- 減1小時30分鐘 SELECT DATE_ADD(NOW(), INTERVAL '-1:30' HOUR_MINUTE);
3.結(jié)合字段使用(如 UPDATE 語句)
-- 將所有訂單的過期時間延長7天 UPDATE orders SET expire_time = DATE_ADD(expire_time, INTERVAL 7 DAY) WHERE status = 'pending'; -- 將2025年的日期全部改為2024年(保留月日時分秒) UPDATE your_table SET pay_time = DATE_ADD(pay_time, INTERVAL (2024 - YEAR(pay_time)) YEAR) WHERE YEAR(pay_time) = 2025;
注意事項
- 負數(shù)表示減法:
-- 等同于 DATE_SUB() 函數(shù) SELECT DATE_ADD(NOW(), INTERVAL -1 DAY); -- 昨天 SELECT DATE_SUB(NOW(), INTERVAL 1 DAY); -- 效果相同
- 自動處理進位 / 退位:
-- 月末日期進位 SELECT DATE_ADD('2025-01-31', INTERVAL 1 MONTH); -- 輸出:2025-02-28(自動處理非閏年) -- 閏年2月29日退位 SELECT DATE_ADD('2024-02-29', INTERVAL 1 YEAR); -- 輸出:2025-02-28
- 時間單位縮寫:
- MICROSECOND(微秒)
- DAY_HOUR(天 + 時)
- DAY_MINUTE(天 + 分)
- DAY_SECOND(天 + 秒)
- HOUR_MINUTE(時 + 分)
- HOUR_SECOND(時 + 秒)
- MINUTE_SECOND(分 + 秒)
與其他日期函數(shù)對比
函數(shù) | 作用 | 示例 |
DATE_ADD() | 日期時間加減 | DATE_ADD(NOW(), INTERVAL 1 DAY) |
DATE_SUB() | 日期時間減法(等同于 DATE_ADD 負數(shù)) | DATE_SUB(NOW(), INTERVAL 1 DAY) |
DATEDIFF() | 計算兩個日期的天數(shù)差 | DATEDIFF('2025-06-23', '2025-01-01') → 173 |
TIMESTAMPDIFF() | 計算兩個日期的指定單位差(如小時、分鐘) | TIMESTAMPDIFF(HOUR, '2025-06-23 10:00', '2025-06-23 12:30') → 2.5 |
常見場景
- 計算未來 / 過去的日期:如活動倒計時、會員過期提醒。
- 批量修改日期字段:如將 2025 年數(shù)據(jù)改為 2024 年。
- 生成時間序列:如生成未來 30 天的日期列表。
掌握DATE_ADD()函數(shù)可以靈活處理 MySQL 中的日期時間計算需求!
到此這篇關(guān)于mysql DATE_ADD函數(shù)用法舉例的文章就介紹到這了,更多相關(guān)mysql date_add用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySQL加減間隔時間函數(shù)DATE_ADD和DATE_SUB的實現(xiàn)
- MySQL之DATE_ADD()和DATE_SUB()函數(shù)的使用方式
- mysql中日期的加減 date_add()、date_sub() 函數(shù)及用法小結(jié)
- mysql中使用date_add()函數(shù)講解
- MySQL DATE_ADD和ADDDATE函數(shù)實現(xiàn)向日期添加指定時間間隔
- MySQL的時間差函數(shù)(TIMESTAMPDIFF、DATEDIFF)、日期轉(zhuǎn)換計算函數(shù)(date_add、day、date_format、str_to_date)
相關(guān)文章
從MySQL的源碼剖析Innodb buffer的命中率計算
這篇文章主要介紹了從MySQL的源碼剖析Innodb buffer的命中率計算,作者結(jié)合C語言寫的算法來分析innodb buffer hit Ratios,需要的朋友可以參考下2015-05-05解決MySQL this is incompatible with s
本文主要介紹了解決MySQL this is incompatible with sql_mode=only_full_group_by 問題,出現(xiàn)這個問題是因為,對于GROUP BY操作,如果在SELECT中的列,沒有在GROUP BY中出現(xiàn),那么這個SQL是不合法的,因為列不在GROUP BY從句中,下面就來了解一下2024-08-08mysql 搜尋附近N公里內(nèi)數(shù)據(jù)的簡單實例
下面小編就為大家?guī)硪黄猰ysql 搜尋附近N公里內(nèi)數(shù)據(jù)的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04MySQL與PHP的基礎(chǔ)與應(yīng)用專題之數(shù)據(jù)查詢語句
MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),屬于 Oracle 旗下產(chǎn)品。MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,本系列將帶你掌握php與mysql的基礎(chǔ)應(yīng)用,本篇從數(shù)據(jù)查詢語句開始2022-02-02