
Tipos de datos en SQL Server
Numéricos exactos
Tipo | Rango de valores | Almacenamiento |
bigint | De -263 (-9.223.372.036.854.775.808) a 263 – 1 (9.223.372.036.854.775.807) | 8 bytes |
int | De -231 (-2.147.483.648) a 231 – 1 (2.147.483.647) | 4 bytes |
smallint | De -215 (-32.768) a 215 – 1 (32.767) | 2 bytes |
tinyint | De 0 a 255 | 1 byte |
bit | Tipo de datos entero que puede aceptar los valores 1, 0 ó NULL | 2 bytes |
decimal, numeric, decimal (p, s) | p (precisión): el número de dígitos decimales que se puede almacenar, tanto a la izquierda como a la derecha del separador decimal. La precisión debe ser un valor comprendido entre 1 y la precisión máxima de 38. La precisión predeterminada es 18. s (escala): el número máximo de dígitos decimales que se puede almacenar a la derecha del separador decimal. La escala debe ser un valor comprendido entre 0 y p. Sólo es posible especificar la escala si se ha especificado la precisión. La escala predeterminada es 0. Con precisión máxima 1038 +1 y 1038 – 1 | Precisión 1 – 9: 5 bytes Precisión 10 – 19: 9 bytes Precisión 20 – 28: 13 bytes Precisión 29 – 38: 17 bytes |
money | Desde -922.337.203.685,4775808 a 922.337.203.685,4775807 | 8 bytes |
smallmoney | De – 214,7483648 a 214,7483647 | 4 bytes |
Numéricos no exactos
Tipo | Rango de valores | Almacenamiento |
float | De – 1,79E+308 a -2,23E-308, 0 y de 2,23E-308 a 1,79E+308 | Depende del valor de n |
real | De – 3,40E + 38 a -1,18E – 38, 0 y de 1,18E – 38 a 3,40E + 38 | 4 Bytes |
Fecha y Hora
Tipo | Rango de valores | Almacenamiento |
date | De 01/01/01 al 21/12/9999 Almacena fechas. | 3 bytes |
datetime | De 01/01/01 al 21/12/9999 Almacena fechas y horas. | 8 bytes |
Datetime2 | De 01/01/01 al 21/12/9999 Almacena fechas y horas con mayor precisión. | 6 bytes precisión <= 3. 7 bytes precisión 3 o 4. Otras 8 bytes. |
smalldatetime | De 1 de enero de 1900 hasta el 6 de junio de 2079 | 4 bytes |
Time | De 00:00:00.0000000 hasta 23:59:59.9999999 | 5 bytes |
Cadena de caracteres
Tipo | Rango de valores | Almacenamiento |
char (n) | Caracteres no Unicode de longitud fija, con una longitud de n bytes. n debe ser un valor entre 1 y 8.000 | n bytes |
varchar (n) | Caracteres no Unicode de longitud variable. n indica que el tamaño de almacenamiento máximo es de 231 – 1 bytes | n bytes (aprox.) |
text | En desuso, sustituido por varchar. Datos no Unicode de longitud variable con una longitud máxima de 231 – 1 (2.147.483.647) caracteres | max bytes (aprox.) |
nchar (n) | Datos de carácter Unicode de longitud fija, con n caracteres. n debe estar comprendido entre 1 y 4.000 | 2 * n bytes |
nvarchar (n) | Datos de carácter Unicode de longitud variable. n indica que el tamaño máximo de almacenamiento es 231 – 1 bytes | 2 * n bytes + 2 bytes |
ntext (n) | En desuso, sustituido por nvarchar. Datos Unicode de longitud variable con una longitud máxima de 230 – 1 (1.073.741.823) caracteres | 2 * n bytes |
binary (n) | Datos binarios de longitud fija con una longitud de n bytes, donde n es un valor que oscila entre 1 y 8.000 | n bytes |
varbinary (n) | Datos binarios de longitud variable. n indica que el tamaño de almacenamiento máximo es de 231 – 1 bytes | n bytes |
image | Datos binarios de longitud variable desde 0 hasta 231 – 1 (2.147.483.647) bytes |
Otros
Tipo | Rango de valores | Almacenamiento |
cursor | Tipo de datos para las variables o para los parámetros de resultado de los procedimientos almacenados que contiene una referencia a un cursor. Las variables creadas con el tipo de datos cursor aceptan NULL | |
timestamp | Tipo de datos que expone números binarios únicos generados automáticamente en una base de datos. El tipo de datos timestamp es simplemente un número que se incrementa y no conserva una fecha o una hora | 8 bytes |
sql_variant | Tipo de datos que almacena valores de varios tipos de datos aceptados en SQL Server, excepto text, ntext, image, timestamp y sql_variant | |
uniqueidentifier | Es un GUID (Globally Unique Identifier, Identificador Único Global) | 16 bytes |
table | Es un tipo de datos especial que se puede utilizar para almacenar un conjunto de resultados para su procesamiento posterior. table se utiliza principalmente para el almacenamiento temporal de un conjunto de filas devuelto como el conjunto de resultados de una función con valores de tabla | |
xml | Almacena datos de XML. Puede almacenar instancias de xml en una columna o una variable de tipo xml |