我的数据库中的表中有 3 列 - CreatedExpiresExpiration_IntervalCreatedExpires 都是 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/

10-13 08:46