SQL как округлить целое значение до 2 знаков после запятой

#mysql #sql #grafana

Вопрос:

Я пытаюсь выполнить 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
 

Комментарии:

1. ROUND(FLOOR(8.498 * 100) / 100, 2)

2. Тот факт, что вы хотите сделать это с денежной выгодой, почти наверняка означает, что у вас есть проблема XY….

Ответ №1:

Если вы действительно хотите округлить, вам нужно сделать:

 floor(provisional_price*100)*.01
 

Но если вы действительно хотите округлить до нуля (вниз для положительных, вверх для отрицательных), вы можете сделать:

 truncate(provisional_price,2)
 

Ответ №2:

Если вы хотите сократить до двух десятичных знаков, а не округлять, вы можете использовать функцию ОКРУГЛЕНИЯ и отправить 3-й аргумент как что-либо другое, кроме 0.

РАУНД ( предварительная цена , 2 , 1 )

Официальная документация : https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2005/ms175003(v=sql.90)?redirectedfrom=MSDN