我对SQL Server没什么经验,需要一些帮助,因为我们的DBA不再和我们在一起,我们正在寻找新的。
背景:我们在表customVariable2
和customVariable3
中使用了两列。 customVariable2
是第一个时间戳,customVariable3
是第二个时间戳。时间格式为HH:MM:SS PM PDT。
我需要找出customVariable2
和customVariable3
之间的时差,然后在另一列中显示差异。如果它以秒或分钟返回一个很好的值。
我不确定我需要哪些其他信息才能让社区能够提供帮助。如果需要更多信息,请告诉我,我可以提供。
在撰写查询时,我仍然是一个完全绿色的人。
提前感谢您的帮助。
答案 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)尚不存在,则需要将其添加到表中。