SQL如何将整数值四舍五入到小数点后2位

Posted

技术标签:

【中文标题】SQL如何将整数值四舍五入到小数点后2位【英文标题】:SQL how to round down an integer value to 2 decimal places 【发布时间】:2021-12-01 12:49:52 【问题描述】:

我正在尝试执行一个 SQL 查询,该查询将一个值拉到小数点后 2 位,如下所示。问题是该值实际上是 8.498,它输出为 8.50,而我需要将其输出为 8.49。

下面是我当前的代码,有没有办法可以使用 FLOOR 将值输出为 8.49

SELECT gas_date as 'time', 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

【问题讨论】:

ROUND(FLOOR(8.498 * 100) / 100, 2) 你想用金钱来做这件事几乎肯定意味着你有一个 XY 问题.... 【参考方案1】:

如果你真的想四舍五入,你必须这样做:

floor(provisional_price*100)*.01

但如果你真的想四舍五入到零(正数向下,负数向上),你可以这样做:

truncate(provisional_price,2)

【讨论】:

【参考方案2】:

如果您想截断到两位小数而不是四舍五入,您可以使用 ROUND 函数并将第三个参数作为 0 以外的任何值发送。

ROUND (临时价格, 2, 1)

官方文档:https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2005/ms175003(v=sql.90)?redirectedfrom=MSDN

【讨论】:

以上是关于SQL如何将整数值四舍五入到小数点后2位的主要内容,如果未能解决你的问题,请参考以下文章

sql 保留2位小数

如何把java得出的数值,保留小数点2位四舍五入

oracle语句中,某个段值想四舍五入,并且保留小数点的后2位,是否有函数可以直接写出来;

如何把java得出的数值,保留小数点2位四舍五入

vb中取值(小数点后2位)的函数是啥?

如何将数值四舍五入后保留两位小数点