MYSQL中 datediff、timestampdiff函數的使用(計算時間間隔)


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

1、between and 語句;

2、datediff 函數;

3、timestampdiff 函數;

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

第一種: 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對邊界還需要進行額外的處理.

第二種: datediff函數

     datediff函數返回兩個日期之間的天數

     語法:DATEDIFF(date1,date2)

SELECT DATEDIFF('2018-07-01','2018-07-04');

     運行結果:-3

     所以,datediff函數對時間差值的計算方式為 date1- date2 的差值。

第三種: timestampdiff函數


    timestampdiff函數日期或日期時間表達式之間的整數差。


    語法:TIMESTAMPDIFF(interval,datetime1,datetime2),比較的單位interval可以為以下數值

    FRAC_SECOND。表示間隔是毫秒
    SECOND。秒
    MINUTE。分鍾
    HOUR。小時
    DAY。天
    WEEK。星期
    MONTH。月
    QUARTER。季度
    YEAR。年

select TIMESTAMPDIFF(DAY,'2018-07-01 09:00:00','2018-07-04 12:00:00');

   運行結果:3

    所以,timestampdiff函數對日期差值的計算方式為datetime2-datetime1的差值。

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


另外,如果是在xml文件中對計算的值進行比較的話,有可能會用到<、>、<=、>=等,xml會報錯,這里需要對這些符號進行替換。

原符號 < <= > >= & ' "
替換符號 &lt; &lt;= &gt; &gt;= &amp; &apos; &quot;




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM