how to get 2 digits after decimal point in tsql?

前端 未结 8 1043
梦如初夏
梦如初夏 2021-02-02 05:42

I am having problem to format digits in my select column.I used FORMAT but it doesn\'t work. Here is my column:

sum(cast(datediff(second, IEC.CREATE_DATE, IEC.ST         


        
相关标签:
8条回答
  • 2021-02-02 06:06

    Try this one -

    DECLARE @i FLOAT = 6.677756
    
    SELECT 
          ROUND(@i, 2)
        , FORMAT(@i, 'N2')
        , CAST(@i AS DECIMAL(18,2))
        , SUBSTRING(PARSENAME(CAST(@i AS VARCHAR(10)), 1), PATINDEX('%.%', CAST(@i AS VARCHAR(10))) - 1, 2)
        , FLOOR((@i - FLOOR(@i)) * 100)
    

    Output:

    ----------------------
    6,68
    6.68
    6.68
    67
    67
    
    0 讨论(0)
  • 2021-02-02 06:10

    Try cast result to numeric

    CAST(sum(cast(datediff(second, IEC.CREATE_DATE, IEC.STATUS_DATE) as float) / 60)
        AS numeric(10,2)) TotalSentMinutes
    

    Input

    1
    2
    3

    Output

    1.00
    2.00
    3.00

    0 讨论(0)
  • 2021-02-02 06:10

    Assume that you have dynamic currency precision

    • value => 1.002431

    • currency precision => 3

    • `result => 1.002

    CAST(Floor(your_float_value) AS VARCHAR) + '.' + REPLACE(STR(FLOOR((your_float_value FLOOR(your_float_value)) * power(10,cu_precision)), cu_precision), SPACE(1), '0')

    0 讨论(0)
  • 2021-02-02 06:12

    So, something like

    DECLARE @i AS FLOAT = 2
    SELECT @i / 3
    SELECT CAST(@i / 3 AS DECIMAL(18,2))
    

    I would however recomend that this be done in the UI/Report layer, as this will cuase loss of precision.

    0 讨论(0)
  • 2021-02-02 06:20
    SELECT CAST(12.0910239123 AS DECIMAL(15, 2))
    
    0 讨论(0)
  • 2021-02-02 06:21

    You could cast it to DECIMAL and specify the scale to be 2 digits

    decimal and numeric

    So, something like

    DECLARE @i AS FLOAT = 2
    SELECT @i / 3
    SELECT CAST(@i / 3 AS DECIMAL(18,2))
    

    SQLFiddle DEMO

    I would however recomend that this be done in the UI/Report layer, as this will cuase loss of precision.

    Formatting (in my opinion) should happen on the UI/Report/Display level.

    0 讨论(0)
提交回复
热议问题