Saltar al contenido

DateTime2 frente a DateTime en SQL Server

Después de investigar con especialistas en este tema, programadores de diversas ramas y maestros dimos con la solución al dilema y la compartimos en este post.

Solución:

La documentación de MSDN para datetime recomienda usar datetime2. Aquí está su recomendación:

Utilizar el time, date, datetime2 y
datetimeoffset tipos de datos para nuevos trabajos. Estos tipos se alinean con el estándar SQL. Son más portátiles.
time, datetime2 y datetimeoffset
proporcionar más segundos de precisión.
datetimeoffset proporciona soporte de zona horaria para aplicaciones implementadas globalmente.

datetime2 tiene un intervalo de fechas mayor, una precisión fraccionaria predeterminada mayor y una precisión opcional especificada por el usuario. Además, dependiendo de la precisión especificada por el usuario, puede usar menos almacenamiento.

DATETIME2 tiene un intervalo de fechas de “0001/01/01” a “9999/12/31” mientras que el DATETIME el tipo solo admite el año 1753-9999.

Además, si es necesario, DATETIME2 puede ser más preciso en términos de tiempo; DATETIME está limitado a 3 1/3 milisegundos, mientras que DATETIME2 puede tener una precisión de hasta 100 ns.

Ambos tipos se asignan a System.DateTime en .NET – no hay diferencia allí.

Si tiene la opción, le recomendaría usar DATETIME2 cuando sea posible. No veo ningún beneficio usando DATETIME (excepto por la compatibilidad con versiones anteriores): tendrá menos problemas (con fechas fuera de rango y molestias como esa).

Además: si solo necesita la fecha (sin parte de la hora), use FECHA; es tan bueno como DATETIME2 ¡y también le ahorra espacio! 🙂 Lo mismo ocurre solo con el tiempo: use TIME. ¡Para eso están estos tipos!

fechahora2 gana en la mayoría de los aspectos excepto (Compatibilidad con aplicaciones antiguas)

  1. más grande rango de valores
  2. mejor Exactitud
  3. menor Espacio de almacenamiento (si se especifica la precisión opcional especificada por el usuario)

Comparación de tipos de datos de fecha y hora de SQL: fecha y hora, fecha y hora2, fecha, HORA

tenga en cuenta los siguientes puntos

  • Sintaxis
    • fechahora2[(fractional seconds precision=> Look Below Storage Size)]
  • Escala de precisión
    • 0 a 7 dígitos, con una precisión de 100ns.
    • La precisión predeterminada es de 7 dígitos.
  • Tamaño de almacenamiento
    • 6 bytes para precisión inferior a 3;
    • 7 bytes para precisión 3 y 4.
    • Toda otra precisión requieren 8 bytes.
  • FechaHora2(3) tiene la misma cantidad de dígitos que DateTime pero usa 7 bytes de almacenamiento en lugar de 8 bytes (SQLHINTS- DateTime Vs DateTime2)
  • Encuentre más en datetime2 (artículo Transact-SQL MSDN)

fuente de la imagen: Kit de capacitación a su propio ritmo de MCTS (Examen 70-432): Microsoft® SQL Server® 2008 – Implementación y mantenimiento Capítulo 3: Tablas -> Lección 1: Creación de tablas -> página 66

Comentarios y puntuaciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *