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中文网其他相关文章!