如何,在SQL Server我可以减去两个DATETIMES得到一个精确的十进制结果



我知道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]

最新更新