0


mysql计算两个时间的时间差

业务场景:

> 查询某一时间段内的数据。

应用

统计这个范围成立日期至今天,1年以内、1年以上5年以内、5年以上的客户数分别是多少,以及成立日期为空的客户数
 select
        '1年以内' as category,count(*) as quantity
        from
        CUSTOMER
        where TIMESTAMPDIFF(year,START_DATE,now())<=1
    union 
    select
        '1到5年' as category,count(*) as quantity
        from
        CUSTOMER
        where TIMESTAMPDIFF(year,START_DATE,now())>1 and TIMESTAMPDIFF(year,START_DATE,now())<6
    union 
    select
        '5年以上' as category,count(*) as quantity
        from
        CUSTOMER
        where TIMESTAMPDIFF(year,START_DATE,now())>5
    union
    select
        '成立日期为空' as category,count(*) as quantity
        from
        CUSTOMER 
        where isnull(START_DATE)

运行结果
在这里插入图片描述

知识点:

**

1、TIMESTAMPDIFF(unit,begin,end) 函数

TIMESTAMPDIFF函数是MySQL中的一个函数,用于计算两个日期或时间之间的差值。它的语法结构为:TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2)。

其中,unit是表示时间单位的参数,可以是以下值之一:

  • MICROSECOND:微秒
  • SECOND:秒
  • MINUTE:分钟
  • HOUR:小时
  • DAY:天
  • WEEK:周
  • MONTH:月
  • QUARTER:季度
  • YEAR:年

datetime_expr1和datetime_expr2是表示日期或时间的表达式,可以是具体的日期或时间值,也可以是列名或函数返回的值。

下面是一个使用TIMESTAMPDIFF函数的示例:

SELECT TIMESTAMPDIFF(DAY, '2024-01-01', '2024-01-18') day;

运行结果
在这里插入图片描述

这个示例计算了从2024年1月1日到2024年1月18日之间的天数差值,结果为17。

另外,TIMESTAMPDIFF函数还支持混合类型的参数,即datetime_expr1和datetime_expr2可以是不同的类型,例如一个是日期,一个是时间。

2、TIMEDIFF(dt1, dt2)

TIMEDIFF(dt1, dt2):计算两个TIME或DATETIME值之间的差值,两个必须为相同类型的参数,即TIME或DATETIME。 TIMEDIFF函数返回表示为时间值的dt1 - dt2的结果

SELECTTIMEDIFF('12:00:00', '15:00:00') timeDiff;

运行结果
在这里插入图片描述
如果任一参数为NULL,TIMEDIFF函数将返回NULL

SELECTTIMEDIFF('12:00:00',null) timeDiff;

运行结果
在这里插入图片描述

标签: mysql android 数据库

本文转载自: https://blog.csdn.net/qq_41154902/article/details/135683740
版权归原作者 枫凌少 所有, 如有侵权,请联系我们删除。

“mysql计算两个时间的时间差”的评论:

还没有评论