精确计算:将T-SQL时间值四舍五入到最接近的15分钟间隔
在T-SQL中处理基于时间的数据时,通常需要将值四舍五入到特定的时间间隔。一个常见的需求是将HH:MM值四舍五入到最接近的15分钟间隔。
高效的四舍五入方法
一种有效的将时间值四舍五入到最接近的15分钟间隔的方法,无需依赖复杂的UDF或CASE语句,而是利用DATEADD和DATEDIFF函数。此方法包括:
示例
将此方法应用于您使用CONVERT、DATEADD和DATEDIFF函数进行计算的特定需求,您将得到以下查询:
<code class="language-sql">SELECT DATEADD(MINUTE, ROUND(DATEDIFF(MINUTE, 0, CONVERT(CHAR(8), DATEADD(n, SUM(DATEDIFF(n, starttime, stoptime)), 0), 108)) / 15.0, 0) * 15, 0)</code>
此计算将HH:MM时间值精确地四舍五入到最接近的15分钟间隔,确保像00:08:00这样的值变为00:15:00,而00:07:00变为00:00:00。
其他方法
虽然DATEADD和DATEDIFF方法高效且准确,但您可以考虑其他几种在T-SQL中四舍五入时间值的方法:
使用ROUND函数并指定间隔:
<code class="language-sql"> ROUND(time_value, 15)</code>
使用SQL Server 2012的FLOOR函数:
<code class="language-sql"> FLOOR(DATEADD(MINUTE, time_value, 0))</code>
以上是如何有效地将 T-SQL 时间值舍入到最接近的 15 分钟间隔?的详细内容。更多信息请关注PHP中文网其他相关文章!