【发布时间】:2021-08-02 23:39:09
【问题描述】:
我看到这个问题被问到并回答了存储为日期的时间,但我将小时和分钟的持续时间存储为numeric(4,2)。例如 2.12,是 2 小时 12 分钟。我需要将其四舍五入到最接近的 15 分钟间隔,这样做 (CONVERT([numeric](4,2),round(2.12/(25),(2))*(25))) 不起作用,因为它是以 10 为底并且不正确地舍入时间。任何帮助将不胜感激,谢谢。
编辑:我从示例中寻找的结果是2.25。
对于我的用例,持续时间需要以季度表示,
15 分钟 = .25
30 分钟 = .50
45 分钟 = .75
【问题讨论】:
-
很遗憾,我没有那个选项,我没有日期/时间只有持续时间。
-
时间应该存储在
time数据类型中,而不是numeric -
@charlieface 是不是一个时间而是一个持续时间的情况?
-
@Joe 以后最好至少提供样本数据和期望的结果。这将消除假设等。
-
只要总是少于 24 小时,是的。至少,如果您将其存储在
numeric中,请将其存储为带小数的小时,而不是将小数点视为一段文本
标签: sql sql-server tsql rounding