mysql两个时间(我有两个字段是datetime类型)相减返回两个时间的小时差,精确到小数点后两位应该怎么写

mysql两个时间(我有两个字段是datetime类型)相减返回两个时间的小时差,精确到小数点后两位应该怎么写,第1张

在mysql中,这种计算可用TIMESTAMPDIFF函数来解决,但是解决过程中需要将数据多次加工。

1、创建测试表及插入测试数据:

create table test

(time1 datetime,

time2 datetime)

insert into test values ('2015-04-03 17:01:09','2015-06-03 22:09:30')

2、目前要结算time2和time1的时间差,用如下语句:

select round(TIMESTAMPDIFF(second,time1,time2)/3600,2) from test

结果如图:

解读:

首先,先用

select TIMESTAMPDIFF(second,time1,time2) from test

来计算两个时间之间的秒数差。

然后,得到的结果除以3600,即为这两个时间之间的小时数。

最后因为要求保留2位小数,则通过round函数,四舍五入,取出2位小数即可。

select curDate(); #获取当前日期select curTime(); #获取当前时间select now(); #获取当前日期+时间

列举1个天数加减的例子,其他的看英文意思就可以理解了

select date_add(now(), interval 1 day); #当前日期天数+1

select date_add(now(), interval -1 day); #当前日期天数-1

select date_add(now(), interval 1 hour);

select date_add(now(), interval 1 minute);

select date_add(now(), interval 1 second);

select date_add(now(), interval 1 microsecond);

select date_add(now(), interval 1 week);

select date_add(now(), interval 1 month);

select date_add(now(), interval 1 quarter);

select date_add(now(), interval 1 year);

你需求讲得不明白,尽量把主要的表结构截图,业务逻辑说清楚。

避免负值的情况可以选择排序再相减(主要不清楚你的时间相减是怎么确定哪个减哪个)

只显示一条,那就group by,不过还是要看业务逻辑

TIMESTAMPDIFF函数,需要传入三个参数,第一个是比较的类型,可以比较FRAC_SECOND、SECOND、

MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR几种类型,第二个和第三个参数是待比较的两个时间,比较是后一个时间减前一个时间SELECT TIMESTAMPDIFF(YEAR,'2012-10-01','2013-01-13');

表示两者相差的年

以上就是关于mysql两个时间(我有两个字段是datetime类型)相减返回两个时间的小时差,精确到小数点后两位应该怎么写全部的内容,包括:mysql两个时间(我有两个字段是datetime类型)相减返回两个时间的小时差,精确到小数点后两位应该怎么写、怎样在MySQL中 *** 作日期、在MYSQL中,我需要每个dev_id的时间相减得到日期差值,但是会出现下一个dev_id的时间减去上一个dev_id等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9782817.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存