【问题标题】:SQL how to round down an integer value to 2 decimal placesSQL如何将整数值四舍五入到小数点后2位
【发布时间】: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 问题....

标签: mysql sql grafana


【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-14
      • 2012-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-12
      • 1970-01-01
      相关资源
      最近更新 更多