两个varchar日期时间之间的时差

时间:2018-10-02 04:02:09

标签: sql sql-server

我想使用datediff函数获取以varchar格式表示的两个日期时间值之间的时间差(以秒为单位)。以下是我的查询,这给了我错误。

DATEDIFF(second, CONVERT(Datetime, data_deviceTransactions_createdTime, 120), CONVERT(Datetime, data_deviceTransactions_updatedTime, 120))

data_deviceTransactions_createdTime和data_deviceTransactions_updatedTime是varchar值,

1 个答案:

答案 0 :(得分:3)

尝试一下:

CONVERT(DATETIME, SUBSTRING('Thu, 20 Sep 2018 05:54:30 GMT', 5, LEN('Thu, 20 Sep 2018 05:54:30 GMT') - 8), 113) 

这应该返回 2018-09-20 05:54:30.000

SELECT
    DATEDIFF(second, CONVERT(DATETIME, SUBSTRING(data_deviceTransactions_createdTime, 5, LEN(data_deviceTransactions_createdTime) - 8), 113), CONVERT(DATETIME, SUBSTRING(data_deviceTransactions_updatedTime, 5, LEN(data_deviceTransactions_updatedTime) - 8), 113))