首页 >数据库 >mysql教程 >如何在 T-SQL 中将 HH:MM 时间值舍入到最接近的 15 分钟?

如何在 T-SQL 中将 HH:MM 时间值舍入到最接近的 15 分钟?

Patricia Arquette
Patricia Arquette原创
2025-01-10 14:09:41728浏览

How to Round HH:MM Time Values to the Nearest 15 Minutes in T-SQL?

在 T-SQL 中将 HH:MM 值四舍五入到最接近的 15 分钟间隔

处理时间值时,四舍五入到特定间隔是一个常见任务。本文探讨了一种优雅的 T-SQL 方法,用于将 HH:MM 值四舍五入到最接近的 15 分钟间隔,无需依赖用户定义函数 (UDF) 或 case 语句。

解决方案:

此技术的关键在于使用 datediff()dateadd() 函数来操作日期组件,同时忽略秒。通过计算输入日期时间和时间组件为 00:00:00 的固定日期之间的差值,我们可以确定经过的分钟数。

然后,可以将此值除以 15 以获得 15 分钟间隔数。结果乘以 15 并使用 dateadd() 添加回固定日期,以得出四舍五入到最接近的 15 分钟间隔的舍入时间。

示例查询:

考虑以下示例查询:

<code class="language-sql">SELECT dateadd(minute, datediff(minute, '2023-01-01', GETDATE()) / 15 * 15, '2023-01-01') AS RoundedTime</code>

GETDATE() 替换为您所需的日期时间值将返回四舍五入的 HH:MM 值,如下所示:

<code>| 输入时间 | 舍入时间 |
|---|---|
| 00:08:00 | 00:15:00 |
| 00:07:00 | 00:00:00 |
| 01:59:00 | 02:00:00 |</code>

注意事项:

这种方法确保了始终如一的舍入行为,而不管输入时间值如何。在处理较大的日期范围时,它还可以避免潜在的溢出错误。虽然它不需要强制转换,但必须使用时间组件为 00:00:00 的适当固定日期作为计算的基础。

以上是如何在 T-SQL 中将 HH:MM 时间值舍入到最接近的 15 分钟?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn