SQL DATE_ADD() 加上一個日期時間區間

在 MySQL 中,處理日期加減的函數有 DATE_ADD() 和 DATE_SUB(),其中加日期時間是用 DATE_ADD(),減日期時間則是用 DATE_SUB()。

DATE_ADD() 語法 (Syntax)

DATE_ADD(datetime, INTERVAL expr unit)

expr 用來指定你要加上的時間間隔,unit 是 expr 的單位。

unit 可以是下列的值:

  • MICROSECOND
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR
  • SECOND_MICROSECOND
  • MINUTE_MICROSECOND
  • MINUTE_SECOND
  • HOUR_MICROSECOND
  • HOUR_SECOND
  • HOUR_MINUTE
  • DAY_MICROSECOND
  • DAY_SECOND
  • DAY_MINUTE
  • DAY_HOUR
  • YEAR_MONTH

DATE_ADD() 範例 (Example)

取得一天後的日期時間:

mysql> SELECT DATE_ADD('2018-05-01',INTERVAL 1 DAY);
'2018-05-02'

mysql> SELECT DATE_ADD('2018-12-31 23:59:59', INTERVAL 1 DAY);
'2019-01-01 23:59:59'

取得一年後的日期時間:

mysql> SELECT DATE_ADD('2018-05-01',INTERVAL 1 YEAR);
'2019-05-01'

也可以用負號 - 表示是減掉時間:

mysql> SELECT DATE_ADD('2018-05-01',INTERVAL -1 YEAR);
'2017-05-01'

取得一個月後的日期時間:

mysql> SELECT DATE_ADD('2018-05-01',INTERVAL 1 MONTH);
'2018-06-01'

取得一秒鐘後的日期時間:

mysql> SELECT DATE_ADD('2020-12-31 23:59:59', INTERVAL 1 SECOND);
'2021-01-01 00:00:00'

取得一個禮拜後的日期時間:

mysql> SELECT DATE_ADD('2018-11-28',INTERVAL 1 WEEK);
'2018-12-05'

更多 MySQL 相關的日期時間函數在這邊
更多 SQL Server 相關的日期時間函數在這邊