gpt4 book ai didi

MySQL 插入转换

转载 作者:太空宇宙 更新时间:2023-11-03 12:06:57 24 4
gpt4 key购买 nike

我试图在 MySQL 中向表中插入一个值,但无法正常工作。我正在使用以下查询:

INSERT into articulo values (32,'Sala',CAST('$10,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: '$10,000.45999'

它在表中显示以下内容:

Inserted values into table articulo

当然我之前创建了'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)
);

我看过很多 Casting 的例子,但都是在 select 下使用 cast 函数陈述。

知道我该怎么做才能执行我想要的吗?

我想将 $10,000.45999 作为十进制值存储到表中。这将是 10000.45999

感谢您的支持!

最佳答案

您可以通过固定数字来插入值。对于您的情况,这应该有效:

INSERT into articulo 
SELECT 32, 'Sala',
CAST(REPLACE(REPLACE('$10,000.45999', ',', ''), '$', '') AS DECIMAL(10,5)),
40.2399, 200.2399, 3, 'kid 3';

严格来说,cast() 不是必需的,但我喜欢避免隐式转换——这会导致难以检测的问题。

请注意:在 insert 语句中包含列列表是个好主意。

关于MySQL 插入转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26090775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com