繁体   English   中英

NVARCHAR到DATE(SQL Server)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM