Este artículo proporciona una comparación en paralelo de los tipos de datos de fecha y hora en SQL Server con respecto a su rango, precisión y tamaño de almacenamiento.
Tipo de datos | Rango | Precisión | Tamaño de almacenamiento |
---|---|---|---|
fecha | 0001-01-01 a través de 9999-12-31 | 1 día | 3 bytes |
fechahora | 1753-01-01 a través de 9999-12-31 00:00:00 a través de 23:59:59.997 | 0,00333 segundos | 8 bytes |
fechahora2 | 0001-01-01 a través de 9999-12-31 00:00:00 a través de 23:59:59.9999999 | 100 nanosegundos | 6 a 8 bytes* |
desplazamiento de fecha y hora | 0001-01-01 a través de 9999-12-31 00:00:00 a través de 23:59:59.9999999 -14:00 a través de +14:00 | 100 nanosegundos | 8 a 10 bytes* |
pequeña fecha y hora | 1900-01-01 a través de 2079-06-06 00:00:00 a través de 23:59:59 | 1 minuto | 4 bytes |
tiempo | 00:00:00.0000000 a través de 23:59:59.9999999 | 100 nanosegundos | 3 a 5 bytes* |
* Tenga en cuenta que las cantidades de almacenamiento enumeradas aquí son las cantidades enumeradas en la documentación de Microsoft. Sin embargo, estos tipos de datos también usan 1 byte para almacenar la precisión. Por lo tanto, agregue 1 byte a las cantidades enumeradas aquí para obtener una imagen más completa de los requisitos de almacenamiento.
Por ejemplo, el tamaño de almacenamiento para datetime2 variaría de 7 a 9 bytes si incluye el byte adicional.
Conversión entre datos de estos tipos
Debido a las diferencias en la precisión y el rango entre estos tipos de datos, debe tener mucho cuidado al convertir entre ellos. En particular, la conversión de un tipo de mayor precisión a un tipo de menor precisión puede resultar en la pérdida de parte del valor y el redondeo del valor restante.
Consulte Conversión entre tipos de datos de fecha y hora en SQL Server para ver ejemplos.