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
  • 相关阅读:
    约瑟夫
    用过的ps操作
    guns框架试用笔记
    让使用WebForm的.aspx文件写的WebApi能够跨域访问
    DevExpress的GridView的行变和列变
    SSMS18.0缺少调试功能
    EF_CodeFirst框架版本问题
    微信小程序框架了解2---js的写法
    微信小程序框架了解1---总体了解
    Chrome浏览器写代码片段的地方
  • 原文地址:https://www.cnblogs.com/qianslup/p/12745202.html
Copyright © 2011-2022 走看看