如何将 VARCHAR 日期时间转换为日期时间类型以填充表



>我有一个带有 VARCHAR() 列的表,其值采用以下格式:

2012-10-05T11:14:00-04:00

我需要将此数据放入另一个表中,其中字段的数据类型为 DATETIME。

我将如何进行转换

2012-10-05T11:14:00-04:00

2012-10-05 11:14:00

我试过了:

CAST(LEFT(REPLACE(fieldtimestamp, 'T', ' '), 19) AS DATETIME)

但它一直给我错误:

从字符串转换日期和/或时间时转换失败。

这将可以: SELECT CONVERT(DATETIME,LEFT(fieldtimestamp,19),126)

无需更换'T'

select CAST(LEFT(REPLACE('2012-10-05T11:14:00-04:00', 'T', ' '), 19) AS DATETIME)

为我工作

2012-10-05 11:14:00.000

在 SQL Server 2012 下

如果您使用的是 MS SQL Server 2008,则可以使用 DATETIMEOFFSET 而不是 DATETIME,它将起作用。

BEGIN
DECLARE @d DATETIMEOFFSET
SELECT @d = '2012-10-05 11:14:00-04:00'
END

选择日期, 投射( 左( 替换( 日期, 'T', ' ' ) , 21 ) 作为日期时间 ) 从 MyTbl1

如果你想要秒,你需要拿21个字母,

thedate                     DATETIME
2012-10-05T11:14:00-04:00   2012-10-05 11:14:00
2012-10-05T11:14:00-05:00   2012-10-05 11:14:00

mysql 中工作正常

相关内容

  • 没有找到相关文章

最新更新