我有桌子,这里是结构
id price net_price
1 20000 19800
当我运行此查询
时,类型数据价格和net_price是双倍的SELECT CAST(net_price - price as unsigned) WHERE id = 1
结果是18446744073709551416,我希望结果值为0.
之前感谢
答案 0 :(得分:3)
-200的无符号值是18446744073709551416。
如果你想使负值为0,请使用下面的代码:
select case
when net_price - price < 0
then 0
else net_price - price
end
from t
where id = 1;
此外,建议使用Decimal类型而不是double来进行货币计算,因为double不能完全表示值。