精確計算:將T-SQL時間值四捨五入到最接近的15分鐘間隔
在T-SQL中處理基於時間的資料時,通常需要將值四捨五入到特定的時間間隔。一個常見的需求是將HH:MM值四捨五入到最接近的15分鐘間隔。
高效率的四捨五入方法
一種有效的將時間值四捨五入到最接近的15分鐘間隔的方法,無需依賴複雜的UDF或CASE語句,而是利用DATEADD和DATEDIFF函數。此方法包括:
範例
將此方法應用於您使用CONVERT、DATEADD和DATEDIFF函數進行計算的特定需求,您將得到以下查詢:
<code class="language-sql">SELECT DATEADD(MINUTE, ROUND(DATEDIFF(MINUTE, 0, CONVERT(CHAR(8), DATEADD(n, SUM(DATEDIFF(n, starttime, stoptime)), 0), 108)) / 15.0, 0) * 15, 0)</code>
此計算將HH:MM時間值精確地四捨五入到最接近的15分鐘間隔,確保像00:08:00這樣的值變為00:15:00,而00:07:00變成00: 00:00。
其他方法
雖然DATEADD和DATEDIFF方法高效且準確,但您可以考慮其他幾種在T-SQL中四捨五入時間值的方法:
使用ROUND函數並指定間隔:
<code class="language-sql"> ROUND(time_value, 15)</code>
使用SQL Server 2012的FLOOR函數:
<code class="language-sql"> FLOOR(DATEADD(MINUTE, time_value, 0))</code>
以上是如何有效地將 T-SQL 時間值舍入到最接近的 15 分鐘間隔?的詳細內容。更多資訊請關注PHP中文網其他相關文章!