我有一個奇怪的錯誤與我的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」。 –