如何解决将列数据类型从NChar更改为Date
我需要在SQL Server中将列的数据类型从nchar
更改为date
。
我有一列dealdate nchar(16)
,它存储着这样的数据:'2020-08-13'
我需要将此列的数据类型更改为DATE
。
尝试更改时,出现错误:
不能从nchar更改DATE
我尝试使用此命令
ALTER TABLE [dbLedger].[dbo].[tblPurchBook]
ALTER COLUMN DealDate DATE NULL;
解决方法
首先使用try_convert()
或try_cast()
验证日期值:
select dealdate
from [dbLedger].[dbo].[tblPurchBook] pb
where try_convert(date,dealdate) is null and dealdate is not null;
如果此操作返回任何行,则需要先固定值,然后才能更改类型。
一种方法是将错误值设置为NULL
,您可以执行以下操作:
update [dbLedger].[dbo].[tblPurchBook] pb
set dealdate = null
where try_convert(date,dealdate) is null and dealdate is not null;
,
我看到尝试过了。但是我还没有解决。
“ ALTER TABLE [dbLedger]。[dbo]。[tblPurchBook] ALTER COLUMN DealDate DATE NULL;“
此命令使用了MSSQL V18.6 我对此有误。
”错误消息 消息241,级别16,状态1,第1行 및/및시간으로변환하지못했습니다。 문이종료되었습니다。 (无法将指示符转换为日期或时间 做了封闭的声明)
完成时间:2020-08-19T11:38:06.5978013 + 09:00“
还有其他方法吗?
谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。