[英]NVARCHAR to DATE (SQL Server)
我有一个表,其中week_date
存储为nvarchar(60)
。 当我尝试将其更改为date
,我遇到了错误。
表中的记录为yyyy-mm-dd
格式
WEEK_DATE
----------
2017-12-31
2018-01-01
消息241,级别16,状态1,第1行
从字符串转换日期和/或时间时转换失败。
我已经使用下面的内容进行转换,但是会引发错误
SET WEEK_DATE = CONVERT(NVARCHAR(260), WEEK_DATE, 120)
谢谢
使用try_convert()
查找错误的值:
select datecol
from t
where try_convert(date, datecol) is null and datecol is not null;
您可以在代码中使用try_convert()
,但应该调查数据问题。
编辑:
要将列更改为日期,请首先验证格式(这样您就不会在转换中出错):
update t
set week_date = try_convert(date, week_date);
不用担心格式。 它将使用任何本地化设置。 但是很高兴地,结果字符串将自动转换回日期。
然后,更改表:
alter table t
alter week_date date;
您可能要使用第一个查询来检查所有日期字符串是否都被实际识别。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.