Tipo de datos DATETIME2 de SQL Server

Resumen: en este tutorial, aprenderás a usar el tipo de datos DATETIME2
de SQL Server
para almacenar datos de fecha y hora en una tabla.
Introducción al tipo de datos DATETIME2 de SQL Server
Para almacenar tanto la fecha como la hora en la base de datos, utiliza el tipo de datos DATETIME2
de SQL Server.
La sintaxis de DATETIME2
es la siguiente:
DATETIME2(precisión de fracciones de segundo)
La precisión de las fracciones de segundo es opcional. Va de 0 a 7.
La siguiente declaración ilustra cómo crear una tabla que consta de una columna DATETIME2
:
CREATE TABLE table_name (
...
column_name DATETIME2(3),
...
);
Tipo de datos DATETIME2
El tipo de datos DATETIME2
tiene dos componentes: fecha y hora.
- La fecha tiene un rango desde el 01 de enero de 01 (0001-01-01) hasta el 31 de diciembre de 9999 (9999-12-31)
- La hora tiene un rango de 00:00:00 a 23:59:59.9999999.
El tamaño de almacenamiento de un valor DATETIME2
depende de la precisión de las fracciones de segundo. Requiere 6 bytes para la precisión inferior a 3, 7 bytes para la precisión entre 3 y 4, y por último 8 bytes para todas las demás precisiones.
El formato literal de cadena predeterminado de DATETIME2
es el siguiente:
YYYY-MM-DD hh:mm:ss[.fracciones de segundos]
Formato DATETIME2
- AAAA es un número de cuatro dígitos que representa un año, por ejemplo, 2022. Va desde 0001 hasta 9999.
- MM es un número de dos dígitos que representa un mes en un año, por ejemplo, 09. Va del 01 al 12.
- DD es un número de dos dígitos que representa un día de un mes específico, por ejemplo, 06. Va del 01 al 31.
- hh es un número de dos dígitos que representa la hora. Va de 00 a 23.
- mm es un número de dos dígitos que representa el minuto. Va de 00 a 59.
- ss es un número de dos dígitos que representa el segundo. Va de 00 a 59.
- Las fracciones de segundo van de cero a un número de siete dígitos que va de 0 a 9999999.
Ejemplo de tipos de datos DATETIME2 de SQL Server
La siguiente declaración crea una nueva tabla que tiene una columna created_at cuyo tipo de datos es DATETIME2
:
CREATE TABLE production.product_colors (
color_id INT PRIMARY KEY IDENTITY,
color_name VARCHAR (50) NOT NULL,
created_at DATETIME2
);
Para insertar la fecha y la hora actuales en la columna created_at, utiliza la siguiente instrucción INSERT con la función GETDATE():
INSERT INTO production.product_colors (color_name, created_at)
VALUES
('Red', GETDATE());
La función GETDATE()
es similar a la función NOW()
en otros sistemas de bases de datos como MySQL
Para insertar un valor literal en la columna DATETIME2
, utiliza la siguiente declaración:
INSERT INTO production.product_colors (color_name, created_at)
VALUES
('Green', '2022-09-15 07:30:20');
Si deseas establecer el valor predeterminado de la columna created_at en la fecha y hora actuales, usa la siguiente instrucción ALTER TABLE:
ALTER TABLE production.product_colors
ADD CONSTRAINT df_current_time
DEFAULT CURRENT_TIMESTAMP FOR created_at;
En esta declaración, usamos CURRENT_TIMESTAMP
como valor predeterminado para la columna created_at.
Ten en cuenta que CURRENT_TIMESTAMP
devuelve el mismo valor que la función GETDATE()
.
Ahora, cuando insertes una nueva fila en la tabla sin especificar el valor de la columna created_at, SQL Server utilizará el valor de fecha y hora actual para esa columna:
INSERT INTO production.product_colors (color_name)
VALUES
('Blue');
En este tutorial, aprendiste a usar el tipo de datos DATETIME2
de SQL Server para almacenar datos de fecha y hora en una tabla.