...">
瀏覽量:132次
mysql中date_sub是什么呢?不知道的小伙伴來看看陽泰小編今天的分享吧!
1、ate_sub函數(shù)簡介:
DATE_SUB()函數(shù)從DATE或DATETIME值中減去時間值(或間隔)。 下面說明了DATE_SUB()函數(shù)的語法:
DATE_SUB(start_date,INTERVAL expr unit);SQL
2、DATE_SUB()函數(shù)接受兩個參數(shù):
start_date是DATE或DATETIME的起始值。
expr是一個字符串,用于確定從起始日期減去的間隔值。unit是expr可解析的間隔單位,例如DAY,HOUR等
以下語句使用DATE_SUB()函數(shù)從2017年7月4日減去1天:
mysql> SELECT DATE_SUB('2017-09-04',INTERVAL 1 DAY) result;
+------------+
| result? ? ?|
+------------+
| 2017-09-03 |
+------------+
1 row in set
-- 求昨天的日期值: 將今天的日期值減去1天
mysql> SELECT DATE_SUB(curdate(),INTERVAL 1 DAY) result;
+------------+
| result? ? ?|
+------------+
| 2017-08-09 |
+------------+
1 row in set//
在這個例子中,開始日期是2017-09-04,它是yyyy-mm-dd格式。 INTERVAL 1 DAY被解析為1天的時間間隔。DATE_SUB()函數(shù)的結(jié)果是2017-09-03的字符串值。
類似于DATE_ADD()函數(shù),DATE_SUB()函數(shù)的返回值的數(shù)據(jù)類型可以是:
如果第一個參數(shù)是DATETIME,則返回值應(yīng)為DATETIME,或者該間隔具有時間元素,如小時,分鐘,秒等。
否則返回一個字符串。
示例:
示例1
mysql> SELECT DATE_SUB('2017-09-04',INTERVAL 3 HOUR) result;
+---------------------+
| result? ? ? ? ? ? ? |
+---------------------+
| 2017-09-03 21:00:00 |
+---------------------+
1 row in set//
因為間隔為3小時,DATE_SUB函數(shù)的結(jié)果為DATETIME值。
示例2?
MySQL DATE_SUB:負(fù)間隔值
expr在間隔值可以為正或負(fù)數(shù)值。 如果expr為負(fù)數(shù),則DATE_SUB()函數(shù)的行為與DATE_ADD()函數(shù)類似,如下例所示:
mysql> SELECT DATE_SUB('2017-07-03',INTERVAL -1 DAY) result;
+------------+
| result? ? ?|
+------------+
| 2017-07-04 |
+------------+
1 row in set//
示例3
MySQL DATE_SUB:無效或格式錯誤的日期
如果DATE_SUB()函數(shù)的第一個參數(shù)格式錯誤,日期無效或NULL,則DATE_SUB()函數(shù)返回NULL。
mysql> SELECT DATE_SUB('2017-02-29', INTERVAL - 1 DAY) result;
+--------+
| result |
+--------+
| NULL? ?|
+--------+
1 row in set//
在這個例子中,2017-02-29是一個無效的日期,因此結(jié)果為NULL。 此外,MySQL發(fā)出警告,可通過以下查詢查看語句。
mysql> SHOW WARNINGS;
+---------+------+----------------------------------------+
| Level? ?| Code | Message? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
+---------+------+----------------------------------------+
| Warning | 1292 | Incorrect datetime value: '2017-02-29' |
+---------+------+----------------------------------------+
1 row in set//
以下示例演示了將異常日期或NULL傳遞給DATE_SUB函數(shù),效果如下所示:
mysql> SELECT DATE_SUB('03/07/2017', INTERVAL 1 DAY) result;
+--------+
| result |
+--------+
| NULL ? |
+--------+
1 row in setmysql> SELECT DATE_SUB(NULL, INTERVAL 1 DAY) result;
+--------+
| result |
+--------+
| NULL ? |
+--------+
1 row in set//
[聲明]本網(wǎng)轉(zhuǎn)載網(wǎng)絡(luò)媒體稿件是為了傳播更多的信息,此類稿件不代表本網(wǎng)觀點,本網(wǎng)不承擔(dān)此類稿件侵權(quán)行為的連帶責(zé)任。故此,如果您發(fā)現(xiàn)本網(wǎng)站的內(nèi)容侵犯了您的版權(quán),請您的相關(guān)內(nèi)容發(fā)至此郵箱【779898168@qq.com】,我們在確認(rèn)后,會立即刪除,保證您的版權(quán)。
官網(wǎng)優(yōu)化
整站優(yōu)化
渠道代理
400-655-5776