2012-03-15 54 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