求助:将nvarchar类型转换为datetime类型时出现SQL转换错误
解决SQL Server日期字符串转datetime的转换错误问题
你的转换错误根源是CONVERT函数指定的style参数与日期字符串格式不匹配:
你用的style 126对应ISO8601标准格式(yyyy-mm-ddThh:mi:ss.mmm),但你的日期字符串是dd/mm/yyyy hh:mm:ss格式,两者规则完全不兼容,导致转换失败。
正确转换方案
根据你的日期格式(日/月/年 时分秒),使用style 103(欧洲/英式日期格式)即可直接转换,无需截取字符串:
DECLARE @date nvarchar(50) = N'02/10/2015 14:26:48' SELECT CONVERT(datetime, @date, 103)
额外说明
- 如果你的日期实际是月/日/年(美国格式),则替换为style 101:
SELECT CONVERT(datetime, @date, 101) - 批量转换遗留表中的日期列时(建议先备份数据),可以执行:
-- 新增datetime类型列 ALTER TABLE YourLegacyTable ADD ConvertedDateTime datetime; -- 批量转换赋值 UPDATE YourLegacyTable SET ConvertedDateTime = CONVERT(datetime, YourNVarcharDateColumn, 103);
内容的提问来源于stack exchange,提问作者Sabyasachi Mukherjee
相关产品推荐
相关产品推荐

