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