我嘗試將一個值插入 MySQL 中的表中,但無法使其工作。我正在使用以下查詢:
INSERT into articulo values (32,'Sala',CAST(',000.45999' AS DECIMAL(10,5)),40.2399,200.2399,3,'kid 3');
MySQL 顯示下列錯誤:
1 row(s) affected, 1 warning(s): 1292 Truncated incorrect DECIMAL value: ',000.45999'
表中顯示以下內容:
當然,我之前創建了表“articulo”:
CREATE Table articulo ( id_art int NOT NULL, nom_art varchar (25) DEFAULT 'XXXXXXXXXXXXX', prec_art decimal (10,5) DEFAULT 0.000, peso_art decimal (10,5), existencia float, color_art int, CONSTRAINT chk_color1 CHECK (color_art between 0 and 20), um_art varchar (10) DEFAULT 'DEF_PZA', primary key (id_art) );
我看過很多關於強制轉換的例子,但它們都在 select 下使用了強制轉換函數 陳述。
知道我該怎麼做才能執行我想要的操作嗎?
我想將 $10,000.45999 作為十進制值儲存到表中。 這將是 10000.45999
感謝您的支持!
您無法在該查詢中的值中使用逗號或美元符號。
您可以將查詢重寫為:
但是,如果您的列已明確定義為
DECIMAL(10,5)
,則無需將值轉換為小數。簡單地寫:
您可以透過固定數字來插入值。對於您的情況,這應該有效:
嚴格來說,
cast()
不是必需的,但我喜歡避免隱式轉換——這些可能會導致難以檢測的問題。請注意:最好在
insert
語句中包含列列表。