#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