0

我对迄今为止的转换字符串有疑问。问题是,我创建了表,我得到了包含大量记录的数据库,我应该将它加载到我的表中。我搜索了任何解决方案,但我只找到了 SELECT 或 CONVERT 但单一记录。

这是错误消息:

从字符串转换日期和/或时间时转换失败。

我应该如何为许多记录(SQL Server)修复它?

谢谢你帮助我。

4

2 回答 2

0

如果我理解您的问题,那么您的一个或一些插入语句有问题。假设您可以更改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);

SQL 小提琴演示

由于您的小提琴示例的日期字段不为空,因此我将 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;

另一个小提琴

于 2013-05-26T00:16:23.307 回答
0

好的,我的列顺序错误,所以它将名称作为日期,并尝试将 varchar 转换为日期。我非常感谢你的帮助:)

于 2013-05-26T10:11:10.160 回答