복붙노트

[SQL] SQL은 - 소수점 이하 2 자리에서 반올림

SQL

SQL은 - 소수점 이하 2 자리에서 반올림

내가 시간 분을 변환 할 필요도 소수점 이후에만 최대 2 개 번호로 표시해야 소수점 이하 2 군데를 반올림. 650.Then 시간은 10.83을해야 나는이 분을한다면

여기에 지금까지 가지고 무엇을 :

Select round(Minutes/60.0,2) from ....

그러나이 경우, 내 분 인 경우, (630), 말 - 시간 10.5000000이다. 그러나 나는 (반올림 후) 만 10.50로합니다. 이걸 어떻게 달성합니까?

해결법

  1. ==============================

    1.당신은 (2 개) 숫자로 결과를 캐스팅 할 수 없습니다? 여기서 x <= 38

    당신은 (2 개) 숫자로 결과를 캐스팅 할 수 없습니다? 여기서 x <= 38

    select 
        round(630/60.0,2), 
        cast(round(630/60.0,2) as numeric(36,2))
    

    보고

    10.500000   10.50
    
  2. ==============================

    2.SQL 서버 2012와 같이 사용할 수있는 내장 포맷 기능 :

    SQL 서버 2012와 같이 사용할 수있는 내장 포맷 기능 :

    SELECT FORMAT(Minutes/60.0, 'N2')
    

    (단지 더 판독 용)

  3. ==============================

    3.당신이 사용할 수있는

    당신이 사용할 수있는

    select cast((630/60.0) as  decimal(16,2))
    
  4. ==============================

    4.

    Declare @number float = 35.44987665;
    Select round(@number,2) 
    
  5. ==============================

    5.

    CAST(QuantityLevel AS NUMERIC(18,2))
    
  6. ==============================

    6.

    DECLARE @porcentaje FLOAT
    
    SET @porcentaje = (CONVERT(DECIMAL,ABS(8700)) * 100) / CONVERT(DECIMAL,ABS(37020))
    
    SELECT @porcentaje
    
  7. ==============================

    7.PostgreSQL은 오라클과 함께 모두에서 작동

    PostgreSQL은 오라클과 함께 모두에서 작동

    SELECT ename, sal, round(((sal * .15 + comm) /12),2) 
    FROM emp where job = 'SALESMAN' 
    
  8. ==============================

    8.다음 쿼리는 유용하고 SIMPLE-입니다

    다음 쿼리는 유용하고 SIMPLE-입니다

    declare @floatExchRate float;
    set @floatExchRate=(select convert(decimal(10, 2), 0.2548712))
    select  @floatExchRate
    

    0.25로 출력을 제공한다.

  9. ==============================

    9.이제까지 당신이 예를 100분의 1,548을 위해 15.00를 제공 진수에 있어야 교단에 사용

    이제까지 당신이 예를 100분의 1,548을 위해 15.00를 제공 진수에 있어야 교단에 사용

    우리는 우리의 예에서 100.0로 100을 대체 할 경우, 우리는 15.48를 얻을 것이다

    select 1548/100 
    15.00000
    
    select 1548/100.0
    15.4800
    
    0
    
  10. ==============================

    10.숫자 형 또는 10 진수로 전화 번호를 변환합니다.

    숫자 형 또는 10 진수로 전화 번호를 변환합니다.

    다음으로 쿼리를 교체합니다.

    SQL 서버

    Select Convert(Numeric(38, 2), Minutes/60.0) from ....
    

    MySQL은 :

    Select Convert(Minutes/60.0, Decimal(65, 2)) from ....
    

    캐스트 기능은 변환 함수에 대한 래퍼입니다. 커플 SQL로 해석 된 언어되고, 그 결과는 두 가지 기능이 동일한 결과를 생성하더라도, 캐스트 함수의 뒤에서가는 약간이 있다는 것을. 변환 기능을 사용하면 작은 절약이지만, 작은 절약 곱셈.

  11. ==============================

    11.이 시도 : SELECT CAST (ROUND ([액 1] / 60,2) AS DECIMAL (10,2)) 총량

    이 시도 : SELECT CAST (ROUND ([액 1] / 60,2) AS DECIMAL (10,2)) 총량

  12. ==============================

    12.수식에 INT 또는 비 소수점 데이터 유형을 사용할 때 추가 기능 아래의 답변에 관해서는, (1)에 의한 가치와 당신이 선호하는 소수의 수를 곱해야합니다.

    수식에 INT 또는 비 소수점 데이터 유형을 사용할 때 추가 기능 아래의 답변에 관해서는, (1)에 의한 가치와 당신이 선호하는 소수의 수를 곱해야합니다.

    즉 - TotalPackages는 INT와 분모 TotalContainers 있도록,하지만 난 내 결과가 6 소수점까지 갖고 싶어.

    그러므로:

    ((m.TotalPackages * 1.000000) / m.TotalContainers) AS Packages,
    
  13. ==============================

    13.다음 코드는 당신을 도울 수 있습니다

    다음 코드는 당신을 도울 수 있습니다

    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
    
  14. ==============================

    14.나는 STR 기능이 달성의 가장 깨끗한 방법을 찾을 수 있습니다.

    나는 STR 기능이 달성의 가장 깨끗한 방법을 찾을 수 있습니다.

    SELECT STR(ceiling(123.415432875), 6, 2)
    
  15. from https://stackoverflow.com/questions/10380197/sql-rounding-off-to-2-decimal-places by cc-by-sa and MIT license