首頁 > 資料庫 > mysql教程 > 如何在 T-SQL 中將 HH:MM 時間值捨去到最接近的 15 分鐘?

如何在 T-SQL 中將 HH:MM 時間值捨去到最接近的 15 分鐘?

Patricia Arquette
發布: 2025-01-10 14:09:41
原創
723 人瀏覽過

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

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板