我的转换字符串到目前为止存在问题。问题是,我创建了表,并且我有大量记录的数据库,我应该将它加载到我的表中。我搜索了任何解决方案,但我发现只有SELECT或CONVERT但奇异的记录。
这是错误消息:
从字符串转换日期和/或时间时转换失败。
我应该如何修复许多记录(SQL Server)?
感谢您的帮助。
答案 0 :(得分: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);
由于您是小提琴示例,因为日期字段不为空,我使用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;
答案 1 :(得分:0)
好的,我的列顺序错误,因此将名称作为日期,并尝试将varchar转换为日期。我很感谢你的帮助:)。