mysql求時間間隔


MySQL的時間差函數TIMESTAMPDIFF、DATEDIFF。

 

一、基本使用方法

1.1 TIMESTAMPDIFF

/*
TIMESTAMPDIFF特點:
1.第三個參數距離第二個參數的第一個參數的個數。
2.結果是第三個參數-第二個參數后向下取整。
*/


select TIMESTAMPDIFF(DAY, '2020-04-01 23:59:59', '2020-04-02 00:00:00')
--  結果:0


select TIMESTAMPDIFF(DAY, '2020-04-01 00:00:00', '2020-04-02 00:00:00')
--  結果:1


select TIMESTAMPDIFF(DAY, '2020-04-01 00:00:00', '2020-04-02 23:59:59')
--  結果:1

select TIMESTAMPDIFF(DAY, '2020-04-01 00:00:00', '2020-04-03 00:00:00')
--  結果:2

1.2 DATEDIFF

/*
DATEDIFF特點:
取第一個參數的日期-取第二個參數的日期;
解決只與日期有關,二與時間無關。
*/
select DATEDIFF('2020-04-01 23:59:59', '2020-04-02 00:00:00')
--  結果:-1


select DATEDIFF('2020-04-01 00:00:00', '2020-04-02 00:00:00')
--  結果:-1


select DATEDIFF('2020-04-01 00:00:00', '2020-04-02 23:59:59')
--  結果:-1

select DATEDIFF('2020-04-01 00:00:00', '2020-04-03 00:00:00')
--  結果:-2

select DATEDIFF( '2020-04-03','2020-03-01')
--  結果:33

 

二、使用時的注意點。

2.1 進行case 分類時TIMESTAMPDIFF最好不要和=號連用。

比如,我想獲得24小時內和24校外兩種情況。

case
when TIMESTAMPDIFF(DAY, '時間1', '時間2')<1 then '24小時內'
else '24小時外' end as '時間段'

如果我選擇了 <= 1。由下面的基本使用方法可知。超過24小時的也會被包含進去。

select TIMESTAMPDIFF(DAY, '2020-04-01 00:00:00', '2020-04-02 23:59:59')
--  結果:1

 


免責聲明!

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



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