我的数据库表中有 3 列 - Created
、Expires
和 Expiration_Interval
。 Created
和Expires
都是datetimeoffset(0)
并且Expiration_Interval
的数据类型是Time(0)
。
Created
在插入新行时被 SYSUTCDATETIME()
填充。 Expiration_Interval
的数据以 hh:mm:ss
格式在输入 XML 中提供,并被提取和填充。要求是用 Created+Expiration_Interval
填充 Expires
列。这是我的方法:
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/