SQL Server fechado

SQL Server fechado
Las fechas son importantes cuando se trabaja con bases de datos. Le permiten incluir una marca de tiempo específica para los datos.

Usando esta guía, aprenderá cómo calcular la diferencia entre dos fechas utilizando la función SQL Server Datediff ().

Uso básico

La función de calificación le permite pasar los valores de la fecha de inicio y finalización. Luego calcula y devuelve la diferencia entre ellos en años, meses, semanas, días, etc.

La sintaxis de la función es como:

datediff (unidad, start_date, end_date);

Argumentos de función

La función tres argumentos principales expresados ​​como:

1. Unidad: representa las unidades bajo las cuales la función informará la diferencia entre la fecha de inicio y finalización especificadas. SQL Server no admite pasar el valor del parámetro de la unidad como una variable de una cadena como 'año';

La tabla a continuación muestra la unidad y la abreviatura que puede usar en el parámetro de la unidad.

abreviación de la unidad
-------------------------------------------------- ------------
nanosegundos ns
Microsegundos MCS
milisegundo MS
Segundo S, SS
Minuto mi, n
Hora HH
Semana WK, WW
Día DD, D
Día del año, DY, Y
Mes mm, m
Quarter QQ, Q
Año YY, YYYY

2. start_date & end_date - define las dos fechas cuya diferencia debe calcularse. El valor de cualquier argumento puede ser una cadena literal o una expresión que puede resolverse a un valor de tipo: fecha, fecha y hora, dataTiM2, datetimeOffset, tiempo, SmallDatetime.
Para evitar la ambigüedad, considere usar cuatro dígitos para representar un año.

Valor de retorno de la función

La función de fechado devuelve un tipo int, que representa la diferencia de fecha de inicio y finalización. A veces, la diferencia puede estar fuera de alcance para el tamaño de un entero. Si eso sucede, la función de fatería devolverá un error. Considere usar la función Datediff_Big para dicho escenario.

Ejemplos de SQL Server Datediff ()

Los siguientes ejemplos son útiles para ilustrar cómo trabajar con la función Fatediff ().

Ejemplo 1:

Considere el ejemplo que se muestra a continuación:

Seleccione Datediff (mes, '1998-09-06', '2022-06-06') como diferencia;

La consulta anterior debe devolver la diferencia de mes total entre la fecha de inicio y finalización como:

diferencia
-----------
285
(1 fila afectada)

Ejemplo 2:

Supongamos que desea calcular cuántos segundos hay en un día? Puede usar la función de fechado como se muestra:

Seleccione Datediff (segundo, '2022-01-01', '2022-01-02') como diferencia;

El ejemplo anterior debe devolver el número de segundos en un día como:

-----------
86400
(1 fila afectada)

Ejemplo 3:

Puede encontrar un escenario en el que la diferencia entre dos fechas es grande que la máxima para un tipo entero. Por ejemplo, la diferencia en los nanosegundos en un día.

Considere la consulta de ejemplo a continuación:

Seleccione Datediff (nanosegundo, '2022-01-01', '2022-01-02') como diferencia;

Si ejecutamos la consulta anterior, SQL Server devuelve un error de desbordamiento como:

La función de fechoría dio como resultado un desbordamiento. El número de partes de fechas que separan dos instancias de fecha/hora es demasiado grande. Intente usar Datediff con una parte de fecha menos precisa.

Para resolver esto, use la función Datediff_Big como:

Seleccione Datediff_Big (nanosegundo, '2022-01-01', '2022-01-02') como diferencia;

En este ejemplo, la consulta devuelve el número de nanosegundos en un día como:

diferencia
--------------------
86400000000000

Ejemplo 4:

El siguiente ejemplo le muestra cómo calcular la diferencia en las horas entre 1998 y 2021.

Seleccione Datediff (Hour, '1998-01-01', '2021-01-01');

El valor resultante es como:

-----------
201624

Ejemplo 5:

Dado que el valor de retorno de la función fatediff es un entero, podemos lanzarlo a una cadena, lo que le permite realizar la concatenación de cadenas.

Por ejemplo:

Seleccione el elenco (fechado (hora, '1998-01-01', '2021-01-01') como varchar (20)) + 'horas';

El ejemplo anterior emite el valor de una cadena entera y agrega una concatenación de cadena.

El resultado del ejemplo es como:

--------------------------
201624 horas

Ultimas palabras

Esperamos que haya disfrutado y haya aprendido cómo calcular las diferencias entre dos fechas utilizando varias unidades en SQL Server. Los ejemplos proporcionados en esta guía pueden ayudarlo a manipular los datos de fecha y hora de manera más eficiente.

Gracias por leer!