SQL如何将数值向下取整保留2位小数 实现8.498输出为8.49
解决方案
可以使用FLOOR函数实现你要的「保留2位小数且不触发四舍五入」的需求,核心逻辑是将目标数值放大100倍后向下取整,再缩小回原量级,即可直接舍弃小数点后第三位及之后的内容,8.498按这个逻辑计算就会得到8.49。
调整后代码
SELECT gas_date as 'time', FLOOR(provisional_price * 100) / 100 AS provisional_price FROM INT654 WHERE provisional_price IS NOT NULL AND hub_name = 'Sydney' AND provisional_schedule_type = 'D-2' ORDER BY gas_date DESC LIMIT 1
补充说明
如果你使用的是支持TRUNCATE函数的数据库(比如MySQL),也可以直接用更简洁的写法实现相同效果,不需要手动做乘除换算:
TRUNCATE(provisional_price, 2)
注意:如果你的业务涉及负数计算,需要确认数据库FLOOR的行为是否符合预期,正数场景下上述两种写法均可以正常使用。
内容的提问来源于stack exchange,提问作者user14875147
相关产品推荐
相关产品推荐

