如何在MySQL中對日期和時間進行加減操作

參考資料

MySQL官方網站 產品文檔 日期和時間函數

DATE_ADD和DATE_SUB

這兩個函數是一對,一個是加法,一個是減法。它們的作用是對指定的日期加上或者減去一段時間。具體的使用方法參考下面的示例。示例中第一條我們將當前時間加上一個月,第二條將當前時間減去一個月。

            SELECT DATE_ADD(now(), INTERVAL 1 MONTH);
SELECT DATE_SUB(now(), INTERVAL 1 MONTH);
        

ADDDATE和SUBDATE

這兩個函數也是一對,一個是加法,一個是減法。它們的使用方法跟DATE_ADD和DATE_SUB是一樣的。具體的使用方法參考下面的示例。示例中第一條我們將當前時間加上一個月,第二條將當前時間減去一個月。

            SELECT ADDDATE(now(), INTERVAL 1 MONTH);
SELECT SUBDATE(now(), INTERVAL 1 MONTH);
        

更多用法

我們在示例中只使用了月作為參數,然而,時、分、秒、週、日、年也都是可以作為參數的,並且還可以支持分和秒、時和分和秒和其他的更多組合。具體可以參考下面的列表。

            MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND 'SECONDS.MICROSECONDS'
MINUTE_MICROSECOND 'MINUTES:SECONDS.MICROSECONDS'
MINUTE_SECOND 'MINUTES:SECONDS'
HOUR_MICROSECOND 'HOURS:MINUTES:SECONDS.MICROSECONDS'
HOUR_SECOND 'HOURS:MINUTES:SECONDS'
HOUR_MINUTE 'HOURS:MINUTES'
DAY_MICROSECOND 'DAYS HOURS:MINUTES:SECONDS.MICROSECONDS'
DAY_SECOND 'DAYS HOURS:MINUTES:SECONDS'
DAY_MINUTE 'DAYS HOURS:MINUTES'
DAY_HOUR 'DAYS HOURS'
YEAR_MONTH 'YEARS-MONTHS'
        

其他信息

其實減法也可以使用DATE_ADD,我們只需要將參數寫成負數即可。此外MariaDB作為MySQL的一個分支,它們的SQL語法也是基本一致的,所以在MariaDB上也有上述的四個函數,並且使用方法是完全一樣的。