我有一个包含一些日期时间列的表,现在我想以秒为单位获取两列之间的时间跨度/间隔(作为int):
declare @Sessions TABLE
(
[session_id] [int] not null,
[start] [datetime] not null,
[end] [datetime] not null
)
insert into @Sessions([session_id], [start], [end])
values (1, '01.04.2012 08:15:05', '01.04.2012 08:16:40');
select [session_id], [end]-[start] as 'duration'
from @Sessions
我得到的是类似日期时间间隔类型:例如。 1900-01-01 00:01:35.000 我想要的是以秒为单位的时间跨度:例如。 95S。
解析字符串不应该是一个选项,因为我认为有一个易于使用的功能 - 深深隐藏在msdn文档中,我还没有找到它。 那么,如何以秒为单位将这些时间间隔设为int?
答案 0 :(得分:2)
将上次选择更改为
select [session_id],datediff(ss,[start],[end]) as 'duration' from @Sessions
我在下面使用table而不是table变量尝试了相同的内容:
答案 1 :(得分:1)
SELECT [session_id]
, DATEDIFF(second, [start] - [end]) as 'Duration'
FROM @Sessions
返回指定的startdate和enddate之间交叉的指定日期部分边界的计数(有符号整数)。
答案 2 :(得分:0)