繁体   English   中英

将列数据类型从 NChar 更改为 Date

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

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