我基本上是以天数格式计算两个日期之间的差异:小时:分钟:秒
CONVERT(varchar, datediff (s, [CreatedDate], [ClosedDate]) / (60 * 60 * 24)) + ':' + CONVERT(varchar, dateadd(s, datediff (s, [CreatedDate], [ClosedDate]), CONVERT(datetime2, '0001-01-01')), 108) AS Length
当CreatedDate和ClosedDate在DATETIME2中时,上述工作 .
但是当他们在DATETIME时给我这个错误:
将varchar数据类型转换为日期时间数据类型会导致超出范围的值 .
CONVERT(varchar, datediff (s, [CreatedDate], [ClosedDate]) / (60 * 60 * 24)) + ':' + CONVERT(varchar, dateadd(s, datediff (s, [CreatedDate], [ClosedDate]), CONVERT(datetime, '0001-01-01')), 108) AS Length
我怎样才能解决这个问题?
1 回答
一种方法是获取日期之间的秒数,因此间隔“实际上是从零开始的日期时间:
然后将其转换为“dd hh:mi:ss”的格式:
在SQL Server 2012中,您可以使用
format()
.