精確到分鐘或小時的 T-SQL 日期時間值捨去方法
SQL Server 提供內建函數,可以輕鬆地將日期時間值捨去到最近的分鐘或小時。例如,對於給定的日期時間值 '2007-09-22 15:07:38.850',可以使用下列函數:
<code class="language-sql">-- 舍入到最近的分钟 SELECT DATEADD(mi, DATEDIFF(mi, 0, @dt), 0) -- 舍入到最近的小时 SELECT DATEADD(hour, DATEDIFF(hour, 0, @dt), 0)</code>
這些方法分別截斷秒和分鐘,以達到所需的捨入效果。 如果需要向上或向下舍入,可以在截斷之前分別添加或減去半分鐘或半小時:
<code class="language-sql">-- 舍入到最近的分钟(向上) SELECT DATEADD(mi, DATEDIFF(mi, 0, DATEADD(s, 30, @dt)), 0) -- 舍入到最近的小时(向上) SELECT DATEADD(hour, DATEDIFF(hour, 0, DATEADD(mi, 30, @dt)), 0)</code>
在 SQL Server 2008 引入 date
資料類型之前,上述方法可用於從 datetime
類型中截斷時間部分,只保留日期部分。這透過計算日期時間和一個固定時間點(0,代表 1900-01-01 00:00:00.000)之間的天數,然後將該天數加到固定時間點來實現:
<code class="language-sql">-- 截断时间部分以仅获取日期 SELECT DATEADD(day, DATEDIFF(day, 0, @dt), 0)</code>
以上是如何將 T-SQL 日期時間值捨去到最接近的分鐘或小時?的詳細內容。更多資訊請關注PHP中文網其他相關文章!