資料庫日期運算函式及Type值詳解
阿新 • • 發佈:2018-12-01
資料庫日期運算函式及Type的期望值
函式DATE_ADD()
和DATE_SUB()
前言:
- 在MySQL資料庫中,我們經常使用日期函式,基本上建立一個數據庫(非測試),我們對日期的使用都是必不可少的,下面我就說一下MySQL資料庫中的日期運算函式以及函式中的Type和它對應的期望值。
知識點:
-
MySQL資料庫中的
NOW()
函式,返回當前系統設定的日期和時間,所以使用這個函式時,若是計算機的時鐘不準確的話,那麼這個函式返回的時間也是錯誤的。SELECT NOW();
-
當然MySQL中也有返回當前日期的函式,如:
CURDATE()
CURRENT_DATE()
。
日期運算函式
MySQL提供給我們的日期運算函式有兩個:
-
DATE_ADD()
函式。使用格式如下:
DATE_ADD(date,INTERVAL,expression type)
-
DATE_SUB()
函式。使用格式如下:
DATE_SUB(date,INTERVAL,expression type)
其中,date 引數是合法的日期表示式,INTERVAL是關鍵字,expression 引數是您希望新增的時間間隔 。
演示一下用法(以減少天數為例):
//用DATE_SUB減少天數,系統時間是:2018年12月1日 //減少12天 SELECT DATE_SUB(NOW(),INTERVAL 12 DAY);
可以看到我減少的是天數,所以使用的是type
值是DAY
,下面我就來說一下type其他可能的取值。
type和對應的期望值
Type | 期望的值(字串形式) | 例子 |
---|---|---|
microsecond | microseconds | ‘10’ |
second | seconds | ‘10’ |
minute | minutes | ‘10’ |
day | days | ‘10’ |
week | weeks | ‘10’ |
month | months | ‘10’ |
quarter | quarters | ‘2’ |
year | years | ‘10’ |
second_microsecond | seconds.microseconds | ‘10.10’ |
minute_microsecond | minutes.microseconds | ‘10.10’ |
minute_second | minutes:seconds | ‘10:10’ |
hour_microsecond | hours.microseconds | ‘10.10’ |
hour_second | hours:minutes:seconds | ‘10:10:10’ |
hour_minute | hours:minutes | ‘10:10’ |
day_microsecond | days.microseconds | ‘10.10’ |
day_second | days hours:minutes:seconds | ‘10 10:10:10’ |
day_minute | days hours:minutes | ‘10 10:10’ |
day_hour | days hours | ‘10 10’ |
year_month | years-months | ‘1000-10’ |
從MySQL3.23版開始,MySQL就支援使用加號(+)和減號(-)來對日期進行加減操作。
//對日期使用減號操作,當前系統日期為2018年12月1日
SELECT NOW() - INTERVAL 12 DAY;
其實,在關鍵字INTERVAL
後面的值可以是任何表示式,只要他返回的結果符合上面表中所列格式的字串。