所以我正在编写一个快速的控制台程序来从我公司的旧MySql数据库中收集数据行,并将行推送到新的Sql数据库。前300行左右一直很好,但突然间我得到了一个
将varchar数据类型转换为日期时间数据类型会导致超出范围的值。
我已经尝试了多种方法来转换我的日期时间,即使我将它放入选择时转换似乎没有任何问题。
IE:
DECLARE @INPUT varchar(30) = '09/25/2010 04:55:47';
SELECT CONVERT(datetime, @INPUT, 101);`
输出2010-09-25 04:55:47.000
。
转换错误仅出现在完整的Sql插入中:
DECLARE @INPUT varchar(30) = '09/25/2010 04:55:47';
INSERT INTO TABLE(A_BUNCH_OF_OTHER_COLUMNS, DATETIME_COLUMN, MORE_COLUMNS)
VALUES (A_BUNCH_OF_OTHER_VALUES, CONVERT(datetime, @INPUT, 101), MORE_VALUES);`
我认为没有理由不这样做,在询问了我的一些同事后,他们认为Sql没有任何问题。
编辑:修复INSERT以反映实际声明。
答案 0 :(得分:1)
INSERT INTO TABLE(A_BUNCH_OF_OTHER_COLUMNS, CONVERT(datetime, @INPUT, 101), MORE_COLUMNS)
在此部分中,您应指定要向其插入值的表的列。您指定了CONVERT方法,该方法不是列。
答案 1 :(得分:0)
如果这是SQL Server,请添加标记。什么是@DT?是否有任何A_BUNCH_OF_OTHER_COLUMNS | A_BUNCH_OF_OTHER_VALUES日期时间?如果是这样,转换问题很可能存在。 - Alex K。
这就是我的问题所在,其他3个日期时间字段的运行时间超过24小时