1. 程式人生 > >MYSQL中 datediff、timestampdiff函式的使用

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可以為以下數值

  1.     FRAC_SECOND。表示間隔是毫秒
  2. SECOND。秒
  3. MINUTE。分鐘
  4. HOUR。小時
  5. DAY。天
  6. WEEK。星期
  7. MONTH。月
  8. QUARTER。季度
  9. YEAR。年
select TIMESTAMPDIFF(DAY,'2018-07-01 09:00:00','2018-07-04 12:00:00');
    執行結果:3

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

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

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

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