如何将VARCHAR datetime转换为DATETIME类型以填充表

RJ.*_*RJ. 0 sql t-sql sql-server datetime converter

我有一个带有VARCHAR()列的表,其中包含以下格式的值:

2012-10-05T11:14:00-04:00
Run Code Online (Sandbox Code Playgroud)

我需要将此数据放入另一个表中,该表的数据类型为DATETIME.

我将如何进行转换

2012-10-05T11:14:00-04:00
Run Code Online (Sandbox Code Playgroud)

2012-10-05 11:14:00
Run Code Online (Sandbox Code Playgroud)

我试过了:

CAST(LEFT(REPLACE(fieldtimestamp, 'T', ' '), 19) AS DATETIME)
Run Code Online (Sandbox Code Playgroud)

但它一直给我错误:

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

Lam*_*mak 7

这样做: SELECT CONVERT(DATETIME,LEFT(fieldtimestamp,19),126)

无需更换'T'.

  • 并且`SET LANGUAGE` - 尝试`SET LANGUAGE FRENCH`和任何一天> 12.更多这里:http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/16/bad-habits-to-kick-mishandling -date范围-queries.aspx (3认同)
  • 更多[这里](http://www.sommarskog.se/wishlist.html#YYYYMMDD)关于使用yyyy-mm-dd日期格式而未指定转换格式时可能发生的情况.使用`T`即使没有格式也是安全的,所以你的答案是双重安全的:). (2认同)