我正在使用此SQL查询将我的_Submission_date
列nvarchar(max)
转换为datetime
格式:
SELECT
CAST(PSCData._SUBMISSION_DATE AS DATETIME2)
FROM
PSCData
我已经尝试了所有可能的方法,但仍然给出了这个错误:
从字符串转换日期和/或时间时转换失败。
_Submission_Date
中的数据采用以下格式:
"2017-8-21 21:13:55.00000"
"2017-9-21 14:13:55.00000"
当我运行此查询时,它可以正常工作:
SELECT CAST('2017-08-25' AS DATETIME);
但采用以下格式:
SELECT CAST('2017-9-21 14:13:55.00000' AS DATETIME);
我得到了上面提到的相同错误。
我有什么建议可以解决这个问题吗?
答案 0 :(得分:0)
找到解决方案。实际问题是字符串周围的双引号导致错误,可以像这样解决:
update PscData
SET _SUBMISSION_DATE = REPLACE(_SUBMISSION_DATE,'"', '')
select CAST(PSCData._SUBMISSION_DATE as DATETIME2)
FROM PSCData
即:首先使用REPLACE方法删除字符串周围的双引号,而不是使用强制转换方法,并且可以轻松转换" varchar"输入数据到" datetime"格式没有任何问题。另外,你必须使用" datetime2"在演员方法中作为" datetime"不会用它。 感谢帮助btw :)