转换和转换日期时间不起作用

时间:2013-11-11 10:42:02

标签: sql-server-2008 converter

我目前通过SSIS包将csv文件导入SQL,在tIS日期时间字段。但是日期时间字段结尾有格林威治标准时间(2013年8月11日15:47:53 GMT),所以我按照下面的说明删除它。

CAST(REPLACE(Date, ' GMT', '') AS DATETIME) AS yDate

这给我以下格式2013-11-08 15:47:53.000 - 应该是YYYY-MM-DD

然而我在将日期转换为YYYY-DD-MM格式时遇到了实际问题,因为SQL似乎认为它是2013年8月11日而不是2013年11月8日。我正在考虑与删除GMT的替换代码有关,但我尝试的所有内容都给出了相同的结果?

有没有人遇到类似的东西?

1 个答案:

答案 0 :(得分:1)

不幸的是,使用空格分隔日期和时间时的行为取决于当前对数据库连接有效的DATEFORMAT设置。

T分隔符(2013-11-08T15:47:53.000)应强制进行明确的解析:

CAST(REPLACE(REPLACE(Date, ' GMT', ''),' ','T') AS DATETIME) AS yDate

另一种选择是切换到使用CONVERT并指定显式样式:

CONVERT(datetime,REPLACE(Date, ' GMT', ''),121) AS yDate