0

我目前通过 SSIS 包将 csv 文件导入 SQL,在字段 tIS 日期时间上。但是,日期时间字段的末尾有 GMT(11/08/2013 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 的替换代码有关,但我尝试的一切都给出了相同的结果?

有没有人遇到过类似的事情?

4

1 回答 1

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
于 2013-11-11T11:04:27.967 回答