1. 程式人生 > >資料庫日期運算函式及Type值詳解

資料庫日期運算函式及Type值詳解

資料庫日期運算函式及Type的期望值

函式DATE_ADD()DATE_SUB()

前言

  • 在MySQL資料庫中,我們經常使用日期函式,基本上建立一個數據庫(非測試),我們對日期的使用都是必不可少的,下面我就說一下MySQL資料庫中的日期運算函式以及函式中的Type和它對應的期望值

知識點

  • MySQL資料庫中的NOW()函式,返回當前系統設定的日期和時間,所以使用這個函式時,若是計算機的時鐘不準確的話,那麼這個函式返回的時間也是錯誤的。

    SELECT NOW();
    

    執行結果圖

  • 當然MySQL中也有返回當前日期的函式,如:CURDATE()

    CURRENT_DATE()

日期運算函式

MySQL提供給我們的日期運算函式有兩個:

  1. DATE_ADD()函式。

    使用格式如下:

    DATE_ADD(date,INTERVAL,expression type)

  2. DATE_SUB()函式。

    使用格式如下:

    DATE_SUB(date,INTERVAL,expression type)

其中,date 引數是合法的日期表示式,INTERVAL是關鍵字,expression 引數是您希望新增的時間間隔 。


演示一下用法(以減少天數為例):

//用DATE_SUB減少天數,系統時間是:2018年12月1日
//減少12天

SELECT DATE_SUB(NOW(),INTERVAL 12 DAY);

DATE_SUB()用法執行圖


可以看到我減少的是天數,所以使用的是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後面的值可以是任何表示式,只要他返回的結果符合上面表中所列格式的字串。