我的SQL查询出现了一个奇怪的错误。
这有效:
INSERT INTO tbl_SomeTable(Send_Type,Remote_Eml,Cover_Subj,Cover_Note,AtnId,StandortEinsatzValue,Standort,KundenNr,AtnTel,Name,Strasse,AtnName,AreaManagerContact,Datum,PLZOrt)
VALUES ('2', '', '', '','02832','1','Replaced','2001158207','Replaced','Real','Replaced','Replaced','Replaced','10.12.2016','15745 Replaced')
这给了我一个错误:
INSERT INTO tbl_SomeTable(Send_Type,Remote_Eml,Cover_Subj,Cover_Note,AtnId,StandortEinsatzValue,Standort,KundenNr,AtnTel,Name,Strasse,AtnName,AreaManagerContact,Datum,PLZOrt)
VALUES ('2', '', '', '','02832','1','Replaced','2001158207','Replaced','Real','Replaced','Replaced','Replaced','17.12.2016','15745 Replaced')
导致将varchar数据类型转换为日期时间数据类型 在超出范围的价值。
唯一的区别是日期。 “10.12.2016”vs“17.12.2016”。 “Datum”列的类型为“datetime”。
我们使用SQL Server 2016。
你能帮助我吗?
答案 0 :(得分:0)
试试这个:
SELECT CONVERT(DATETIME,'17.12.2016',103)
SELECT CONVERT(DATETIME,'10.12.2016',103)
答案 1 :(得分:0)
您需要使用CONVERT。替换您的查询,如下所示。
还在DB中维护标准化的日期格式。
INSERT INTO tbl_SomeTable(Send_Type,Remote_Eml,Cover_Subj,Cover_Note,AtnId,StandortEinsatzValue,Standort,KundenNr,AtnTel,Name,Strasse,AtnName,AreaManagerContact,Datum,PLZOrt)
VALUES ('2', '', '', '','02832','1','Replaced','2001158207','Replaced','Real','Replaced','Replaced','Replaced',CONVERT(DATETIME,'10.12.2016',103),'15745 Replaced')
INSERT INTO tbl_SomeTable(Send_Type,Remote_Eml,Cover_Subj,Cover_Note,AtnId,StandortEinsatzValue,Standort,KundenNr,AtnTel,Name,Strasse,AtnName,AreaManagerContact,Datum,PLZOrt)
VALUES ('2', '', '', '','02832','1','Replaced','2001158207','Replaced','Real','Replaced','Replaced','Replaced',CONVERT(DATETIME,'17.12.2016',103),'15745 Replaced')