SQL-округление до 2 знаков после запятой
Мне нужно преобразовать минуты в часы, округленные до 2 десятичных знаков.Мне также нужно отобразить только до 2 чисел после десятичной точки. Так что если у меня есть минут 650.Тогда часов должно быть 10.83
вот что у меня пока есть:
Select round(Minutes/60.0,2) from ....
но в этом случае, если мои минуты,скажем, 630 часов - это 10.5000000. Но я хочу, чтобы это было только 10.50(после округления). Как мне этого добиться?
12 ответов:
не могли бы вы бросить свой результат как
numeric(x,2)? Гдеx <= 38select round(630/60.0,2), cast(round(630/60.0,2) as numeric(36,2))возвращает
10.500000 10.50
Как и в SQL Server 2012, Вы можете использовать встроенный функции format:
SELECT FORMAT(Minutes/60.0, 'N2')(просто для дальнейшего чтения...)
следующий запрос полезен и прост -
declare @floatExchRate float; set @floatExchRate=(select convert(decimal(10, 2), 0.2548712)) select @floatExchRateдает выход в виде 0,25.
DECLARE @porcentaje FLOAT SET @porcentaje = (CONVERT(DECIMAL,ABS(8700)) * 100) / CONVERT(DECIMAL,ABS(37020)) SELECT @porcentaje
работает как с postgresql, так и с Oracle
SELECT ename, sal, round(((sal * .15 + comm) /12),2) FROM emp where job = 'SALESMAN'
следующий код может помочь вам:
select SUBSTR(ENDDTTM,1, 9), extract(DAY FROM (ENDDTTM)), ENDDTTM, BEGINDTTM, (ENDDTTM - BEGINDTTM),substr(BEGINDTTM, 1,15), substr((ENDDTTM - BEGINDTTM), 12, 8), round((substr((ENDDTTM - BEGINDTTM), 12, 2)* 3600 + substr((ENDDTTM - BEGINDTTM), 15, 2)*60 + substr((ENDDTTM - BEGINDTTM), 18, 2)),2) as seconds, round((substr((ENDDTTM - BEGINDTTM), 12, 2)* 60 + substr((ENDDTTM - BEGINDTTM), 15, 2) + substr((ENDDTTM - BEGINDTTM), 18, 2)/60 ), 2)as minutes, round((substr((ENDDTTM - BEGINDTTM), 12, 2) + substr((ENDDTTM - BEGINDTTM), 15, 2)/60 + substr((ENDDTTM - BEGINDTTM), 18, 2)/3600 ),2) as hours
то, что вы используете в деноминации, должно быть десятичным, например
1548/100даст15.00если заменить
100С100.0в нашем примере мы получим15.48select 1548/100 15.00000 select 1548/100.0 15.4800 0
преобразуйте свой номер в
NumericилиDecimal.замените запрос следующим.
Sql server
Select Convert(Numeric(38, 2), Minutes/60.0) from ....MySql:
Select Convert(Minutes/60.0, Decimal(65, 2)) from ....The
Castфункция является оболочкой для
Я нахожу функцию STR самым чистым средством достижения этого.
SELECT STR(ceiling(123.415432875), 6, 2)
Comments