Escreva um número com duas casas decimais SQL server

Como você escreve um número com duas casas decimais para o sql server?

tente isso

SELECT CONVERT(DECIMAL(10,2),YOURCOLUMN) 

Use a function Str() . São necessários três argumentos (o número, o número total de caracteres a serem exibidos e o número de casas decimais a serem exibidos

  Select Str(12345.6789, 12, 3) 

exibe: ‘12345.679’ (3 espaços, 5 dígitos 12345, um ponto decimal e três dígitos decimais (679) .- arredonda se tiver que truncar, (a menos que a parte inteira seja muito grande para o tamanho total, caso em que asteriscos são exibidos em vez disso.)

para um Total de 12 caracteres, com 3 à direita do ponto decimal.

Geralmente você pode definir a precisão de um número no SQL definindo-o com parâmetros. Na maioria dos casos, isso será NUMERIC(10,2) ou Decimal(10,2) – definirá uma coluna como um Número com 10 dígitos no total, com precisão de 2 (casas decimais).

Editado para maior clareza

Este trabalho para mim e sempre mantém frações de dois dígitos

23,1 ==> 23,10

25,569 ==> 25,56

1 ==> 1,00

 Cast(CONVERT(DECIMAL(10,2),Value1) as nvarchar) AS Value2 

Captura de canvas do código

Se você só precisa de duas casas decimais, a maneira mais simples é ..

 SELECT CAST(12 AS DECIMAL(16,2)) 

OU

 SELECT CAST('12' AS DECIMAL(16,2)) 

Saída

 12.00 

É assim que as crianças estão fazendo hoje:

 DECLARE @test DECIMAL(18,6) = 123.456789 SELECT FORMAT(@test, '##.##') 

123,46

Se você está bem com o arredondamento do número em vez de truncá-lo, então é só:

 ROUND(column_name,decimals) 

Multiplique o valor que você deseja inserir (ex. 2,99) por 100

Em seguida, insira a divisão por 100 do resultado adicionando 0,01 ao final:

 299.01/100 

Isso permitirá um total de 10 dígitos com 2 valores após o decimal. Isso significa que ele pode acomodar o valor antes do decimal até 8 dígitos e 2 após o decimal.

Para validar, coloque o valor na consulta a seguir.

 DECLARE vtest number(10,2); BEGIN SELECT 10.008 INTO vtest FROM dual; dbms_output.put_line(vtest); END; 

Tente isto:

  declare @MyFloatVal float; set @MyFloatVal=(select convert(decimal(10, 2), 10.254000)) select @MyFloatVal Convert(decimal(18,2),r.AdditionAmount) as AdditionAmount