DATE_SUB(d,INTERVAL expr type)函數返回起始日期d減去一個時間段後的日期。mysql
expr是一個表達式,用來指定從起始日期添加或減去的時間間隔值。sql
expr是一個字符串。對於負值的時間間隔,它能夠用一個負號「-」開頭。函數
expr表達式與後面的間隔類型type對應。字符串
MySQL中的日期間隔類型以下表所示:table
類型(type值) | 含義 | expr表達式的形式 |
---|---|---|
YEAR | 年 | YY |
MONTH | 月 | MM |
DAY | 日 | DD |
HOUR | 時 | hh |
MINUTE | 分 | mm |
SECOND | 秒 | ss |
YEAR_MONTH | 年和月 | YY和MM之間用任意符號隔開 |
DAY_HOUR | 日和小時 | DD和hh之間用任意符號隔開 |
DAY_MINUTE | 日和分鐘 | DD和mm之間用任意符號隔開 |
DAY_SECOND | 日和秒鐘 | DD和ss之間用任意符號隔開 |
HOUR_MINUTE | 時和分 | hh和mm之間用任意符號隔開 |
HOUR_SECOND | 時和秒 | hh和ss之間用任意符號隔開 |
MINUTE_SECOND | 分和秒 | mm和ss之間用任意符號隔開 |
使用DATE_SUB()函數執行日期減操做。SQL語句以下:class
mysql>SELECT DATE_SUB('2014-10-11 12:00:00',INTERVAL 1 SECOND) AS col1, ->DATE_SUB('2014-10-11 23:59:59',INTERVAL '1 1' YEAR_MONTH) AS col2;
執行結果以下:im
從上圖中代碼執行的結果能夠看出:img
在MySQL中,還能夠使用負數來指定時間。tab
使用DATE_SUB()函數執行日期減操做。SQL語句以下:di
mysql>SELECT DATE_SUB('2014-10-11 11:59:59',INTERVAL -1 SECOND) AS col1, ->DATE_SUB('2014-10-11',INTERVAL '-1 -1' YEAR_MONTH) AS col2;
執行結果以下:
從上圖中代碼執行的結果能夠看出:
由於是對負數進行的減操做,因此實際上進行的是日期的加操做。
DATE_SUB(d,INTERVAL expr type)函數在指定修改的時間段時,也能夠指定負值,負值表明相減,減去一個負值,獲得的是對日期的相加,即返回之後的日期和時間。
DATE_SUB(d,INTERVAL expr type)函數中的type必須在上表中。並且,type必須是上表中的某一項,不能是其中幾項的組合。所以,使用該函數時,必定要注意type的選擇。
DATE_SUB(d,INTERVAL expr type)函數和SUBDATE(d,INTERVAL expr type)函數的做用相同。