SQL DATE_SUB() 減去一個日期時間區間
在 MySQL 中,處理日期加減的函數有 DATE_ADD() 和 DATE_SUB(),其中加日期時間是用 DATE_ADD(),減日期時間則是用 DATE_SUB()。
DATE_SUB() 語法 (Syntax)
DATE_SUB(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_SUB() 範例 (Example)
取得一天前的日期時間:
mysql> SELECT DATE_SUB('2018-05-01',INTERVAL 1 DAY);
'2018-04-30'
mysql> SELECT DATE_SUB('2018-12-31 23:59:59', INTERVAL 1 DAY);
'2018-12-30 23:59:59'
取得一年前的日期時間:
mysql> SELECT DATE_SUB('2018-05-01',INTERVAL 1 YEAR);
'2017-05-01'
也可以用負號 -
表示是加上時間:
mysql> SELECT DATE_SUB('2018-05-01',INTERVAL -1 YEAR);
'2019-05-01'
取得一個月前的日期時間:
mysql> SELECT DATE_SUB('2018-05-01',INTERVAL 1 MONTH);
'2018-04-01'
取得一秒鐘前的日期時間:
mysql> SELECT DATE_SUB('2020-12-31 23:59:59', INTERVAL 1 SECOND);
'2020-12-31 23:59:58'
取得一個禮拜前的日期時間:
mysql> SELECT DATE_SUB('2018-11-28',INTERVAL 1 WEEK);
'2018-11-21'