You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MySQL中将时间差四舍五入至最近的0.5小时?

MySQL时间差四舍五入到最近0.5小时的语法错误解决方法

你的问题出在括号不匹配——表达式末尾少了一个闭合的),这直接触发了MySQL的1064语法错误。

正确的表达式应该是:

FLOOR( ( (TIME_TO_SEC(TIMEDIFF(midnight, start)) / 3600) * 2 ) + 0.5 ) / 2

逻辑说明:

  1. TIMEDIFF(midnight, start)计算两个时间的差值,TIME_TO_SEC()将其转为秒数后除以3600,得到以小时为单位的数值
  2. 乘以2是把小时数转换为以0.5小时为最小单位的整数刻度(比如1.2小时→2.4,1.6小时→3.2)
  3. 加0.5后用FLOOR()取整,实现四舍五入到最近的整数(2.4+0.5=2.9→取整为2;3.2+0.5=3.7→取整为3)
  4. 最后除以2,还原回以小时为单位的0.5倍数结果

举个例子:如果时间差是1小时20分钟(约1.333小时),代入计算后会得到1.5小时,符合四舍五入到最近0.5小时的需求。

内容的提问来源于stack exchange,提问作者Walt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 17:55:54