我知道datediff
只给你一个整数,有没有一个替代方案,给你两个日期时间之间的差的十进制结果?
以下内容足够/准确吗?
CAST(DateA- DateB AS decimal(7 , 2))
不能,但是你可以决定它返回的int的粒度——它可以是年、季度、月、周、日、小时、分钟、秒、毫秒……我想就这些了。
下面是一个以秒为单位返回差值,然后转换为分钟、小时等的示例:
declare @start datetime
declare @end datetime
set @start = '2013-01-01 00:00:00'
set @end = getdate()
declare @deltaSeconds int
set @deltaSeconds = DATEDIFF( ss, @start, @end )
select @deltaSeconds Seconds, @deltaSeconds / 60.0 [Minutes], @deltaSeconds / 60.0 / 60.0 [Hours], @deltaSeconds / 60.0 / 60.0 / 24.0 [Days]