如何在SQL Server中提取两个DATETIMES以获得精确的DECIMAL结果

时间:2013-03-28 08:12:42

标签: sql sql-server

我理解datediff只给你一个整数,是否有一个替代方法可以给出两个日期时间之间差异的十进制结果?

以下是否足够/准确:

CAST(DateA- DateB AS decimal(7 , 2))

1 个答案:

答案 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]