[英]Change column datatype from NChar to Date
我需要在 SQL 服务器中将列的数据类型从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 我得到了一个错误。
“错误消息MSG 241,Q46A2A2A41CC6E552044816A2D04634545DZ 1,行1문자열/또는/또는/또는또는시간변환못했습니다。
完成时间:2020-08-19T11:38:06.5978013+09:00"
还有其他方法吗?
谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.