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

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

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-10 14:12:42854浏览

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

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

在数据分析中,将时间值舍入到最接近的指定间隔是一个常见任务。在本例中,我们的目标是将 HH:MM 值舍入到最接近的 15 分钟间隔。

无需用户自定义函数的方法

虽然使用用户自定义函数 (UDF) 或 CASE 语句是一种可行的方法,但还有一些更优雅的方法可以避免使用它们。其中一种方法是利用 DATEADD 和 DATEDIFF 函数:

<code class="language-sql">select dateadd(minute, datediff(minute,0,GETDATE()) / 15 * 15, 0)</code>

此处,GETDATE() 表示当前日期时间值。DATEDIFF 函数计算当前时间与固定参考日期 0 之间的分钟差。然后,我们将此差除以 15 并乘以 15,以获得最接近的 15 分钟间隔。最后,DATEADD 函数将此间隔添加到参考日期,从而得到舍入后的时间值。

注意事项

此方法适用于仅与分钟相关且可以忽略秒的情况。由于潜在的溢出问题,它可以处理直到 5500 年的日期。但是,使用特定日期(例如,“2009-01-01”)或今天的日期作为参考点可以解决此限制。

示例

例如,使用上述方法将类似于“00:08:00”的时间戳舍入到最接近的 15 分钟间隔将得到“00:15:00”。类似地,“00:07:00”将舍入为“00:00:00”。

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

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