我有一个奇怪的错误与我的SQL查询。将varchar数据类型转换为日期时间。超出范围的错误
这工作:
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')
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
唯一的区别是日期。 “10.12.2016”vs“17.12.2016”。 “Datum”列是“datetime”类型。
我们使用SQL Server 2016
你能帮助我吗?
'17'超出了月份值的范围,并且您的引擎可能将日期解析为en-US。不要使用像“10.12.2016”这样的文化依赖字符串来插入数据。唯一被认可的独立字符串格式是“20161210”(ISO没有分隔符)。更好的是,使用实际键入的'DATETIME'参数。 –
SELECT CONVERT(VARCHAR,Datum,101)FROM表 – Chanukya
这些注释都应该有效。使用文字“20161212”,或者使用带有适当格式掩码号的“CONVERT”。 –