2012-03-15 56 views
0

我使用datediff得到兩個日期時間之間的差異四捨五入到最接近的30分鐘:此DATEDIFF

DATEDIFF(hh, CAST(CAST(dbo.QuickLabDump.[Date Entered] AS DATE) AS DATETIME) 
    + CAST(dbo.QuickLabDump.[Time Entered] AS TIME), 
    CAST(CAST(dbo.QuickLabDump.[Date Completed] AS DATE) AS DATETIME) 
    + CAST(dbo.QuickLabDump.[Time Completed] AS TIME)) AS [Hours TurnAround] 

我不明白,我從這句話得到的行爲,但我需要的是什麼,是>= :30, round up, if not, round down,

問題如何在30分鐘內完成下舍入,如果大於或等於30分鐘,可以將小時數累加起來?

+0

阿龍索裏有關,感謝您用ormatting – 2012-03-15 19:41:52

回答

3

您應該計算在幾分鐘內DATEDIFF,做一個ROUND則:

ROUND(CAST(DATEDIFF(MINUTES, CAST(CAST(dbo.QuickLabDump.[Date Entered] AS DATE) AS DATETIME) 
         + CAST(dbo.QuickLabDump.[Time Entered] AS TIME), CAST(CAST(dbo.QuickLabDump.[Date Completed] AS DATE) AS DATETIME) 
         + CAST(dbo.QuickLabDump.[Time Completed] AS TIME)) AS FLOAT)/60,0) AS [Hours TurnAround] 
+0

感謝SSO多大幫助!!!!! – 2012-03-15 19:51:57

+0

+1謝謝。我用這個很好的語句創建了一個標量值函數。 – Samuel 2013-06-20 03:18:04