2012-03-15 3 views
0

Я использую datediff, чтобы получить разницу между двумя DateTimes:DATEDIFF округлением до ближайших 30 минут

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] 

Я не понимаю поведение, которое я получаю от этого заявления, но что мне нужно что-то, что is >= :30, round up, if not, round down,

вопрос как его получить, чтобы округлить, когда менее 30 минут и вокруг часов, если больше или равно 30 минут?

+0

Aarón Сори об этом, спасибо за помощь ormatting –

ответ

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 много !!!!! –

+0

+1 Спасибо. Я создал Scalar-Valued-Function с этим хорошим утверждением. – Samuel

Смежные вопросы