[英]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.