gpt4 book ai didi

SQL Server - 在 ALTER TABLE 中将 VarChar 转换为日期

转载 作者:行者123 更新时间:2023-12-04 20:42:34 24 4
gpt4 key购买 nike

看到了一些关于此的线程,但我有一个特定的实例,我试图在 ALTER TABLE 语句中进行转换。

ALTER TABLE Leads
ALTER COLUMN [Created Date] Date

这是抛出错误:

Msg 241, Level 16, State 1, Line 34
Conversion failed when converting date and/or time from character string.
The statement has been terminated.



创建日期当前设置为 (varchar(max), null)

最佳答案

您可以标准化日期格式。像这样的东西:

UPDATE Leads
SET [Created Date] = TRY_CONVERT(Date, [Created Date], 101);

第三个参数用于注释中提到的 MM/DD/YYYY 格式。这会将值转换为日期——如果可以的话——并转换为 NULL除此以外。然后,SQL Server 将使用其默认格式转换回字符串。

注意:如果你这样做,一定要备份表格,这样你就不会丢失列中的信息!

然后,您的代码应该可以工作:
ALTER TABLE Leads ALTER COLUMN [Created Date] Date;

您可以使用以下方法找到恶意值:
select [Created Date]
from Leads
where try_convert(date, [Created Date], 101) is null and
[Created Date] is not null;

关于SQL Server - 在 ALTER TABLE 中将 VarChar 转换为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39617862/

24 4 0