SqlHints.com
DateTime2 es el nuevo Tipo de datos introducido en Sql Server 2008 para almacenar el valor de Fecha y Hora. Según MSDN, Microsoft sugiere usar este nuevo tipo de datos para trabajos nuevos en lugar de DateTime.
La siguiente tabla resume algunas de las principales diferencias entre este nuevo tipo de datos DateTime2 y el antiguo Tipo de datos DateTime.
DateTime | DateTime2 | |
Min Value | 1753-01-01 00:00:00 | 0001-01-01 00:00:00 |
Max Value | 9999-12-31 23:59:59.997 | 9999-12-31 23:59:59.9999999 |
Tamaño de almacenamiento | 8 Bytes | 6 a 8 bytes Nota: El parámetro n es opcional y, si no se especifica, fraccionado la precisión de los segundos es de 7 dígitos y puede ser de 0 a 7 dígitos. For fractional seconds precision <3, takes 6 bytes For fractional seconds precision 3 or 4 it will take 7 bytes For fractional seconds precision >4 it will take 8 bytes |
Usage | Declare @now datetime | Declare @now datetime2(7) |
Compliance | Is not an ANSI/ISO compliant | Is an ANSI/ISO compliant |
Función de Fecha y hora actual | GetDate() – Devuelve la Fecha y Hora actual de la base de datos del tipo de datos DateTime
Ejemplo: SELECCIONE GETDATE() |
SYSDATETIME()– Devuelve la Fecha y Hora actuales de DB del tipo de datos DateTime2
Ejemplo:SELECT SYSDATETIME() |
+/- días | WORKS
Ejemplo: |
FALLA – Necesita usar solo la función DateAdd
Ejemplo: |
DateTime2 con una precisión de segundos fraccionados de 3 es lo mismo que el tipo de datos DateTime. Y DateTime2 (3) utiliza 7 bytes de almacenamiento en lugar de 8 bytes que usa el tipo de datos DateTime antiguo y también proporciona un rango de fechas más alto (p. ej. 0001-01-01 a 9999-12-31) en comparación con el tipo de datos DateTime. Ahora veamos esto con un ejemplo:
DECLARE @nowDateTime DATETIME = GETDATE(), @nowDateTime2 DATETIME2(3)= SYSDATETIME()SELECT DATALENGTH(@nowDateTime) 'DateTime Storage Size', DATALENGTH(@nowDateTime2) 'DateTime2(3) Storage Size'
Result:DateTime Storage Size DateTime2 Storage Size --------------------- ---------------------- 8 7
LEA TAMBIÉN
- Varchar vs NVarchar
- Varchar vs Varchar(MAX)
- Char vs Varchar
- Texto vs Varchar(Max)
- Unión vs Union All
- DateTime vs DateTime2
- SET QUOTED_IDENTIFIER ON vs SET QUOTED_IDENTIFIER APAGADO
- Procedimiento Almacenado vs Función Definida por el Usuario
- Clave Primaria vs Clave Única
- RAISERROR vs TIRO
- Tabla Temporal vs Variable de Tabla
- Len() vs Datalength()
- Secuencia vs Identidad
- DATEDIFF vs DATEDIFF_BIG
- LEFT JOIN vs IZQUIERDA OUTER JOIN
- RIGHT JOIN vs RIGHT OUTER JOIN
- UNIRSE vs INNER JOIN
- LEFT OUTER JOIN vs RIGHT OUTER JOIN
- SMALLDATETIME vs DATETIME