我对迄今为止的转换字符串有疑问。问题是,我创建了表,我得到了包含大量记录的数据库,我应该将它加载到我的表中。我搜索了任何解决方案,但我只找到了 SELECT 或 CONVERT 但单一记录。
这是错误消息:
从字符串转换日期和/或时间时转换失败。
我应该如何为许多记录(SQL Server)修复它?
谢谢你帮助我。
我对迄今为止的转换字符串有疑问。问题是,我创建了表,我得到了包含大量记录的数据库,我应该将它加载到我的表中。我搜索了任何解决方案,但我只找到了 SELECT 或 CONVERT 但单一记录。
这是错误消息:
从字符串转换日期和/或时间时转换失败。
我应该如何为许多记录(SQL Server)修复它?
谢谢你帮助我。
如果我理解您的问题,那么您的一个或一些插入语句有问题。假设您可以更改INSERT
语句,那么您可以ISDATE
按照之前评论者的建议使用:
INSERT INTO table_name
VALUES('Lisiak','Anna',
CASE WHEN ISDATE('1968-05')=1 THEN '1968-05' ELSE '1/1/1753' END,
CASE WHEN ISDATE('1998-01-01')=1 THEN '1998-01-01' ELSE '1/1/1753' END);
由于您的小提琴示例的日期字段不为空,因此我将 1/1/1753 用于无效日期 - 相应地进行更改。
如果您出于某种原因无法更改您的INSERT
语句,另一种选择是更改您的表以接受 varchar 而不是 datetime。然后进行相应的转换和更改。
UPDATE table_name
SET data_ur = CASE WHEN ISDATE(data_ur)=1 THEN data_Ur ELSE '1/1/1753' END;
ALTER TABLE table_name ALTER COLUMN data_ur DATE NOT NULL;
好的,我的列顺序错误,所以它将名称作为日期,并尝试将 varchar 转换为日期。我非常感谢你的帮助:)