如何在mysql中获得2次之间的差异?

时间:2019-04-16 02:50:22

标签: mysql

我试图找出两次结果之间的差异,我想要的结果不仅是四舍五入到最近的小时,而是半小时。

SELECT  (CEILING(ROUND(TIMESTAMPDIFF(MINUTE, TIMESTAMPADD(MINUTE,
    ROUND(TIMESTAMPDIFF(MINUTE,CURDATE(),'2019-04-16 17:30:00')/60)*60,
    CURDATE()),'2019-04-16 21:00:00')/60,1)/ 0.5) * 0.5)

在该查询中,结果是3.0小时,但我想要的是3.5小时。

2 个答案:

答案 0 :(得分:0)

处理时间的技巧不是将其转换为字符串:

SELECT ABS(TIME_TO_SEC(TIMEDIFF('2019-04-16 17:30:00','2019-04-16 21:00:00')))/3600

答案 1 :(得分:0)

如果要舍入到最接近的半小时,只需将TIMESTAMPDIFF与分钟参数一起使用,除以30(半小时),然后除以ROUND,就可以得到精确的半小时数时间段,然后除以2,将小时数计算为最接近的半小时:

SELECT ROUND(TIMESTAMPDIFF(MINUTE, '2019-04-16 17:30:00','2019-04-16 21:00:00') / 30) / 2

输出

3.5

Demo on dbfiddle