我的数据库中的表中有 3 列 - Created
、 Expires
和 Expiration_Interval
。 Created
和 Expires
都是 datetimeoffset(0)
并且 Expiration_Interval
是数据类型 Time(0)
。
插入新行时,Created
会填充 SYSUTCDATETIME()
。 Expiration_Interval
的数据以 hh:mm:ss
格式在输入 XML 中提供、提取和填充。要求是用 Expires
填充 Created+Expiration_Interval
列。这是我的方法:
INSERT INTO SESSIONS
SELECT
Expiration_Interval,
SYSUTCDATETIME(),
DATEADD(s,((DATEPART(hh,Timeout)*3600)+(DATEPART(mi,Timeout)*60)+ DATEPART(ss,Timeout)),SYSUTCDATETIME())
FROM input_xml -- CTE with shredded XML data
有没有更简单的方法来做到这一点?这是在 SQL Server 2008 R2 上
最佳答案
您可以将 Timeout
转换为 datetime
并使用 +
为 SYSUTCDATETIME()
添加时间。
SYSUTCDATETIME()+cast(Timeout as datetime)
关于tsql - SQL Server 2008 R2 中的日期时间计算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8653716/