【发布时间】:2025-12-01 13:10:01
【问题描述】:
我有下一个问题, 我有一个带有字符串列的表,但我需要将此列转换为十进制或浮点数。 我尝试使用 cast 和 convert 但不起作用 例子
输入
3.50
7.10
18.50
27.00
46.50
46.90
117.90
226.70
274.70
Not available
Not available
试过
select cast(price as decimal(16,2)) from products
输出
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
我看到了这个警告
警告:#1918 转换为 DECIMAL 时遇到非法值 ''
警告:#1292 截断的 DECIMAL 值错误:
我需要稍后将此列与另一列相乘
【问题讨论】:
-
加0即可;不需要强制转换或转换。如果您在数字上下文中使用字符串,即使添加 0 可能 也是不必要的。你还需要
TRIM()吗?