zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    B
    F
    递推,大数存储E
    为什么感觉一无所获
    java new synchronized
    Java Phaser
    java Semaphore
    java Exchanger 2
    JAVA Exchanger
    java CyclicBarrier 2
  • 原文地址:https://www.cnblogs.com/qianslup/p/12745202.html
Copyright © 2011-2022 走看看