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中文網其他相關文章!