我理解datediff
只给你一个整数,是否有一个替代方法可以给出两个日期时间之间差异的十进制结果?
以下是否足够/准确:
CAST(DateA- DateB AS decimal(7 , 2))
答案 0 :(得分: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]