我需要計算給定日期的時差。我嘗試了類似的方法但不起作用。
CONVERT(TIME, DATEADD(MINUTE, DATEDIFF(MI, MIN(CreatedOn),
MAX(CreatedOn)), 0), 108) AS WorkingTime
多謝你們
uj5u.com熱心網友回復:
你可以嘗試這種方式,因為你沒有顯示你得到的錯誤我不知道你可以有什么細節,但是為了得到時差,你可以像這樣得到它,因為我把你留在下面
DECLARE @MaxDate DATETIME=DATEADD(HOUR,20,GETDATE()) --here you could get the maximum of your table separately
DECLARE @MinDate DATETIME=GETDATE() --here you could get the minimum of your table separately
SELECT DATEDIFF(MINUTE,@MinDate,@MaxDate) AS WorkingTime
https://dbfiddle.uk/?rdbms=sqlserver_2019&fiddle=09128de0d996e85a21992197b524a208
uj5u.com熱心網友回復:
從這一列我需要計算每天的作業時間,為此我需要選擇給定日期的第一次,然后將其四舍五入到整小時(06:08:20 到 06:00:00),然后計算一天中最后一次之間的差異,這將為我提供以分鐘為單位的作業時間。
我的專欄
uj5u.com熱心網友回復:
你的問題并不完全清楚,但我認為這就是你想要做的。
SELECT CAST(WorkingTime AS DATE),
MIN(WorkingTime) AS min,
MAX(WorkingTime) AS max,
DATEADD(HOUR, DATEDIFF(HOUR, 0, MIN(WorkingTime)), 0) AS truncatedmin,
DATEDIFF(MINUTE,DATEADD(HOUR, DATEDIFF(HOUR, 0, MIN(WorkingTime)), 0),MAX(WorkingTime)) AS [difference]
FROM YourTable
GROUP BY CAST(WorkingTime AS DATE)
名為“差異”的列應顯示 truncatedmin 和 max 列之間的分鐘數差異。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/484686.html
