Дополнительно
SQL - округление до 2 десятичных знаков
Мне нужно конвертировать минуты в часы, округленные до 2 десятичных знаков. Мне также нужно отображать только до 2 чисел после десятичной точки. Так что, если у меня есть минуты как 650. Тогда часы должны быть 10,83
Вот что у меня есть до сих пор
Select round(Minutes/60.0,2) from ....
Но в этом случае, если мои минуты, скажем, 630 - часы - 10,5000000. Но я хочу только 10,50 (после округления). Как мне этого достичь?
210
14
Не могли бы вы назвать свой результат
числовым (x, 2)
? Гдеx < = 38
Возвращает
Как и в SQL Server 2012, вы можете использовать встроенную функцию формата:
(только для дальнейших чтений...)
Вы можете использовать
Работает как с postgresql, так и с Oracle
То, что вы используете в деноминации, должно быть в десятичном виде, например, «1548/100» даст «15,00»
Если мы заменим
100
на100.0
в нашем примере, мы получим15.48
Следующий запрос полезен и прост
Дает выход как 0,25.
Преобразуйте свой номер в «Числовой» или «Децимальный».
Замените ваш запрос следующим.
Sql сервер
MySql:
Функция
Cast
является оберткой для функцииConvert
. Соедините это с интерпретируемым языком SQL, и в результате получается, что, хотя две функции дают одинаковые результаты, в функции «Cast» происходит немного больше. Использование функцииConvert
- это небольшая экономия, но небольшая экономия увеличивается.В качестве дополнения к приведенным ниже ответам при использовании INT или не десятичных типов данных в ваших формулах не забудьте умножить значение на 1 и количество десятичных знаков, которые вы предпочитаете.
то есть. - «TotalPackages» - это «INT» и, следовательно, знаменатель «TotalContainers», но я хочу, чтобы мой результат имел до 6 десятичных знаков.
таким образом:
попробуйте это:
ВЫБЕРИТЕ ПРОШЛОЕ (КРУГЛЫЙ ([Сумма 1] / 60,2) КАК РЕШЕНИЕ (10,2)) как ВСЕГО
Следующий фрагмент может помочь вам:
Я считаю функцию STR самым чистым средством для достижения этой цели.