我试图找出两次结果之间的差异,我想要的结果不仅是四舍五入到最近的小时,而是半小时。
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小时。
答案 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