我正在創建一個資料庫,我正在嘗試用值填充表,但出現錯誤
訊息 241,級別 16,狀態 1,第 3 行
從字串轉換日期和/或時間時轉換失敗。
查詢代碼:
INSERT INTO Register_of_crimes (id_crime , Date, List_of_crime , Fine)
VALUES ('1', '1989-3-6', 'Ru?enie no?ného k?udu', '30'),
('2', '1991-3-3', 'Po?kodzovanie cudzej veci', '50'),
('3', '2011-3-3', 'Pitie alkoholu na verejnosti', '20'),
('4', '1999-6-5', 'Vytr?nosti na verejnosti', '40')
我創建的表:
CREATE TABLE Register_of_crimes
(
id_crime int,
Date date,
List_of_crime varchar (150),
Fine money,
PRIMARY KEY (id_crime)
)
感謝您的所有回答和建議
uj5u.com熱心網友回復:
你應該實際使用19910303,沒有破折號。
SQL Server 與大多數語言一樣解釋,1991-03-03如下YYYY-DD-MM所示:
SET LANGUAGE Deutsch;
SELECT CONVERT(datetime, '1991-03-13');
結果:
Msg 242, Level 16, State 3
Bei der Konvertierung eines varchar-Datentyps in einen datetime-Datentyp liegt der Wert au?erhalb des gültigen Bereichs。
(如果您轉換為 ,它實際上可以正常作業date,但這是一個例外,并且始終保持相同、明確的格式是更好的做法。)
- 示例db<>fiddle
- 負責任約會中有關日期的更多資訊
您還應該確保使用正確的資料型別(可能還有正確的排序規則)宣告可能包含 Unicode 字符的字串,并且所有字串文字都以N. 以及不被字串分隔符包圍的整數。所以我希望:
List_of_crime nvarchar(150)
--------------^
...和...
VALUES (1, '19890306', N'Ru?enie no?ného k?udu', 30)
uj5u.com熱心網友回復:
使用明確的日期和時間格式。在 SQL Server 中,它們是yyyyMMdd和yyyy-MM-ddThh:mm:ss.nnnnnnn。此外,當您的資料型別是數字時,不要將它們用單引號 ( ') 括起來,即用于文字字串。我假設您的值采用以下格式yyyy-M-d:
INSERT INTO Register_of_crimes (id_crime , Date, List_of_crime , Fine)
VALUES (1,'19890306','Ru?enie no?ného k?udu', 30),
(2,'19910303','Po?kodzovanie cudzej veci',50),
(3,'20110303','Pitie alkoholu na verejnosti',20),
(4,'19990605','Vytr?nosti na verejnosti',40);
在單獨的注釋中,您可能會發現您插入的值會List_of_crime遭受資料丟失,因為字符位于代碼頁之外(例如,?可能會隱式轉換為l)。如果是這種情況,您將需要對ALTER您的表進行這樣List_of_crime的操作nvarchar,然后使用nvarchar文字字串,例如N'Ru?enie no?ného k?udu'.
uj5u.com熱心網友回復:
由于您的資料庫是Sql-Server,因此將資料格式更改為以下,
INSERT INTO Register_of_crimes (id_crime , Date, List_of_crime , Fine)
VALUES ('1' , '06-MAR-1989' , 'Ru?enie no?ného k?udu', '30'),
('2' , '03-MAR-1991' , 'Po?kodzovanie cudzej veci', '50'),
('3' , '03-MAR-2011' , 'Pitie alkoholu na verejnosti', '20'),
('4' , '05-JUN-1999', 'Vytr?nosti na verejnosti', '40')
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/414973.html
標籤:
上一篇:為什么從DB2匯出到MSSQL資料型別DATE、DATETIME、TIMESTAMP不是VARCHAR()時TIMESTAMP小數秒數減少.001
下一篇:根據分隔符拆分兩列
