SQL Server 2008时间戳减法得到总秒数(时间戳总是在变化)

时间:2014-07-30 19:29:37

标签: sql sql-server time datediff

我对SQL Server没什么经验,需要一些帮助,因为我们的DBA不再和我们在一起,我们正在寻找新的。

背景:我们在表customVariable2customVariable3中使用了两列。 customVariable2是第一个时间戳,customVariable3是第二个时间戳。时间格式为HH:MM:SS PM PDT。

我需要找出customVariable2customVariable3之间的时差,然后在另一列中显示差异。如果它以秒或分钟返回一个很好的值。

我不确定我需要哪些其他信息才能让社区能够提供帮助。如果需要更多信息,请告诉我,我可以提供。

在撰写查询时,我仍然是一个完全绿色的人。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这有效:

select DATEDIFF(second,'12:12:12 PM','1:13:13 PM')

但这不是:

select DATEDIFF(second,'12:12:12 PM PDT','1:13:13 PM PDT')

如果数据在varchar中并包含“PDT”,我怀疑你需要做的是

select DATEDIFF(second,replace(customVariable2,' PDT',''), replace(customVariable3,' PDT',''))

在评论中的附加问题之后,存储时间戳差异的结果:

update tablename
set customVariable4 = DATEDIFF(second, replace(customVariable2,' PDT',''), replace(customVariable3,' PDT',''))

如果用于存储差异的列(我的示例代码中的customVariable4)尚不存在,则需要将其添加到表中。