簡體   English   中英

DATEDIFF舍入到最接近的30分鍾

[英]DATEDIFF rounding to the nearest 30 minutes

我正在使用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, round up, if not, round down,

問題我如何在少於30分鍾的時間內將其四舍五入,而在大於或等於30分鍾的時間內如何將其四舍五入?

您應該以分鍾為單位計算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]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM