Estou tentando descobrir o tipo de dados decimal de uma coluna no SQL Server. Eu preciso ser capaz de armazenar valores como 15,5, 26,9, 24,7, 9,8, etc.
Eu atribui decimal(18, 0)
ao tipo de dados da coluna, mas isso não me permite armazenar esses valores.
Qual é a maneira certa de fazer isso?
sql
sql-server
types
decimal
Alex
fonte
fonte
decimal(4,2)
permite 2 dígitos antes e 2 dígitos após o ponto decimal. "4.5" pode ser armazenado nenhum problema - e numericamente, "4.5" e "4,50" são idênticosvarchar
para armazenar um valor decimal !!Você deve usar é o seguinte:
m
é o número total de dígitos que seu decimal pode ter.a
é o número máximo de dígitos que você pode ter após o ponto decimal.http://www.tsqltutorials.com/datatypes.php possui descrições para todos os tipos de dados.
fonte
As configurações
Decimal
são de precisão e escala ou no idioma normal, quantos dígitos um número pode ter e quantos você deseja ter à direita do ponto decimal.Então, se você colocar
PI
em um,Decimal(18,0)
ele será gravado como3
?Se você colocar
PI
em umDecimal(18,2)
será gravado como3.14
?Se você colocar
PI
emDecimal(18,10)
ser gravado como3.1415926535
.fonte
Na maior parte do tempo, uso decimal (9,2), que ocupa o mínimo de armazenamento (5 bytes) no tipo decimal sql.
Precisão => Bytes de armazenamento
Ele pode armazenar de 0 a 9.999.999,99 (7 dígitos na frente + 2 dígitos atrás do ponto decimal = total de 9 dígitos), que é grande o suficiente para a maioria dos valores.
fonte
Você pode tentar isso
O comprimento dos números deve ser totalmente 18. O comprimento dos números após o ponto decimal deve ser apenas 1 e não mais que isso.
fonte
No MySQL DB
decimal(4,2)
permite inserir apenas um total de 4 dígitos. Como você vêdecimal(4,2)
, significa que você pode inserir um total de 4 dígitos, dos quais dois dígitos devem ser mantidos após o ponto decimal.Portanto, se você digitar 100.0 no banco de dados MySQL, será exibido um erro como "Valor fora do intervalo da coluna".
Portanto, você pode inserir apenas esse intervalo: de 00,00 a 99,99.
fonte
As outras respostas estão certas. Supondo que seus exemplos reflitam toda a gama de possibilidades, o que você deseja é
DECIMAL(3, 1)
. Ou,DECIMAL(14, 1)
permitirá um total de 14 dígitos. É seu trabalho pensar no que é suficiente.fonte
fonte