Estoy tratando de averiguar el tipo de datos decimales de una columna en SQL Server. Necesito poder almacenar valores como 15.5, 26.9, 24.7, 9.8, etc.
Le asigné decimal(18, 0)
el tipo de datos de columna, pero esto no me permite almacenar estos valores.
¿Cuál es la forma correcta de hacer esto?
sql
sql-server
types
decimal
Alex
fuente
fuente
decimal(4,2)
permite 2 dígitos antes y 2 dígitos después del punto decimal. "4.5" se puede almacenar sin problemas - y numéricamente, "4.5" y "4.50" son idénticosvarchar
para almacenar un valor decimal!Debe usar es el siguiente:
m
es el número de dígitos totales que puede tener su decimal.a
es el número máximo de dígitos que puede tener después del punto decimal.http://www.tsqltutorials.com/datatypes.php tiene descripciones para todos los tipos de datos.
fuente
Las configuraciones para
Decimal
son su precisión y escala o en lenguaje normal, cuántos dígitos puede tener un número y cuántos dígitos desea tener a la derecha del punto decimal.Entonces, si pones
PI
en unDecimal(18,0)
se registrará como3
?Si pones
PI
en unDecimal(18,2)
se registrará como3.14
?Si pones
PI
enDecimal(18,10)
ser grabado como3.1415926535
.fuente
Para la mayoría de las veces, uso decimal (9,2), que ocupa menos espacio (5 bytes) en el tipo decimal sql.
Precisión => bytes de almacenamiento
Puede almacenar de 0 a 999999999 (7 dígitos delante + 2 dígitos detrás del punto decimal = total 9 dígitos), que es lo suficientemente grande para la mayoría de los valores.
fuente
Puedes probar esto
La longitud de los números debe ser totalmente 18. La longitud de los números después del punto decimal debe ser solo 1 y no más que eso.
fuente
En MySQL DB
decimal(4,2)
permite ingresar solo un total de 4 dígitos. Como puede verdecimal(4,2)
, significa que puede ingresar un total de 4 dígitos, de los cuales dos dígitos están destinados a mantenerse después del punto decimal.Por lo tanto, si ingresa 100.0 en la base de datos MySQL, mostrará un error como "Valor fuera de rango para columna".
Por lo tanto, solo puede ingresar en este rango: de 00.00 a 99.99.
fuente
Las otras respuestas son correctas. Asumiendo que sus ejemplos reflejan la gama completa de posibilidades, lo que quiere es
DECIMAL(3, 1)
. O,DECIMAL(14, 1)
permitirá un total de 14 dígitos. Es tu trabajo pensar en lo que es suficiente.fuente
fuente