我知道datediff
只给你一个整数,有没有一种替代方法可以为你提供两个日期时间之间差异的十进制结果?
以下内容是否足够/准确:
CAST(DateA- DateB AS decimal(7 , 2))
我知道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]