SQL中日期搜索 datediff()、timestampdiff()和data_format()函數使用

1、三種日期搜索

對mysql中日期範圍搜索的大體有三種方式:mysql

一、between and語句;

二、datediff函數;

三、timestampdiff函數;

下面就具體說明下這三種方式:sql

第一種: between and語句函數

select * from dat_document where commit_date between '2018-07-01' and '2018-07-04' 

結果是1號到3號的數據,這是由於時間範圍顯示的實際上只是‘2018-07-01 00:00:00’到’2018-07-04 00:00:00’之間的數據,而’2018-07-04’的數據就沒法顯示出來,between and對邊界還須要進行額外的處理。spa

第二種: datediff()函數
datediff函數返回兩個日期之間的天數code

語法:DATEDIFF(date1,date2)

SELECT DATEDIFF('2018-07-01','2018-07-04');
運行結果:-3

因此,datediff函數對時間差值的計算方式爲date1-date2的差值。orm

第三種: timestampdiff()函數
timestampdiff函很多天期或日期時間表達式之間的整數差。it

語法:TIMESTAMPDIFF(interval,datetime1,datetime2),比較的單位interval能夠爲如下數值
FRAC_SECOND。表示間隔是毫秒
SECOND。秒
MINUTE。分鐘
HOUR。小時
DAY。天
WEEK。星期
MONTH。月
QUARTER。季度
YEAR。年

示例:form

select TIMESTAMPDIFF(DAY,'2018-07-01 09:00:00','2018-07-04 12:00:00');
運行結果:3

因此,timestampdiff函數對日期差值的計算方式爲datetime2-datetime1的差值。class

請注意:DATEDIFF,TIMESTAMPDIFF對日期差值的計算方式恰好是相反的。date

2、DATE_FORMAT()

DATE_FORMAT() 函數用於以不一樣的格式顯示日期/時間數據。
語法:

DATE_FORMAT(date,format)

date參數是合法的日期。format規定日期/時間的輸出格式。
示例:
下面的腳本使用 DATE_FORMAT() 函數來顯示不一樣的格式。咱們使用 NOW() 來得到當前的日期/時間:

DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p')
DATE_FORMAT(NOW(),'%m-%d-%Y')
DATE_FORMAT(NOW(),'%d %b %y')
DATE_FORMAT(NOW(),'%d %b %Y %T:%f')

運行結果

Dec 29 2008 11:45 PM
12-29-2008
29 Dec 08
29 Dec 2008 16:25:46.635
相關文章
相關標籤/搜索