Función DATEDIFF de SQL Server

Resumen: en este tutorial, aprenderá a utilizar la función de SQL Server DATEDIFF() para calcular el número de años, meses, semanas, días,etc., entre dos fechas.

Resumen de DATEDIFF() de SQL Server

Para calcular la diferencia entre dos fechas en años, meses, semanas, etc., se utiliza la función DATEDIFF():

DATEDIFF( date_part , start_date , end_date)
Code language: SQL (Structured Query Language) (sql)

La función DATEDIFF() acepta tres argumentos: date_partstart_date, y end_date.

  • date_part es la parte de la fecha por ejemplo, un año, un trimestre, un mes, una semana que quieres comparar entre el start_date y el end_date. Consulte las partes de fecha válidas en la tabla siguiente.
  • start_date y end_date son las fechas a comparar. Deben resolverse en valores del tipo DATEDATETIMEDATETIMEOFFSETDATETIME2SMALLATETIME, o TIME.

La siguiente tabla enumera los valores válidos de date_part:

.

fecha_parte abreviaturas
año año, aaaa
trimestre qq, q
mes mm, m
día del año dy, y
día dd, d
semana semana, ww hora hh minuto mi, n
segundo ss, s
milisegundo ms
microsegundo mcs
nanosegundo ns

La función DATEDIFF() devuelve un valor de entero que indica la diferencia entre el start_date y el end_date, con la unidad especificada por date_part.

La función DATEDIFF() devuelve un error si el resultado está fuera del rango de los enteros (-2.147.483.648 a +2.147.483.647). En este caso, debes utilizar la función DATEDIFF_BIG() en su lugar.

Ejemplos de la función DATEDIFF() de SQL Server

Vamos a poner algunos ejemplos de uso de la función DATEDIFF() para entenderla mejor.

A) Uso de la función DATEDIFF() para comparar las diferencias entre dos valores de fecha

Este ejemplo utiliza la función DATEDIFF() para comparar la diferencia entre dos fechas en varias partes de fecha:

DECLARE @start_dt DATETIME2= '2019-12-31 23:59:59.9999999', @end_dt DATETIME2= '2020-01-01 00:00:00.0000000';SELECT DATEDIFF(year, @start_dt, @end_dt) diff_in_year, DATEDIFF(quarter, @start_dt, @end_dt) diff_in_quarter, DATEDIFF(month, @start_dt, @end_dt) diff_in_month, DATEDIFF(dayofyear, @start_dt, @end_dt) diff_in_dayofyear, DATEDIFF(day, @start_dt, @end_dt) diff_in_day, DATEDIFF(week, @start_dt, @end_dt) diff_in_week, DATEDIFF(hour, @start_dt, @end_dt) diff_in_hour, DATEDIFF(minute, @start_dt, @end_dt) diff_in_minute, DATEDIFF(second, @start_dt, @end_dt) diff_in_second, DATEDIFF(millisecond, @start_dt, @end_dt) diff_in_millisecond;
Code language: SQL (Structured Query Language) (sql)

Aquí está la salida:

Ejemplo de la función DATEDIFF de SQL Server con variables

B) Uso de la función DATEDIFF() con la tabla columna ejemplo

El siguiente ejemplo utiliza la función DATEDIFF() para comparar la fecha de entrega solicitada con la fecha de envío en días y devolver si el pedido está atiempo o se retrasa:

SELECT order_id, required_date, shipped_date, CASE WHEN DATEDIFF(day, required_date, shipped_date) < 0 THEN 'Late' ELSE 'OnTime' END shipmentFROM sales.ordersWHERE shipped_date IS NOT NULLORDER BY required_date;
Code language: SQL (Structured Query Language) (sql)

Aquí está la salida:

Ejemplo de la función DATEDIFF de SQL Server

En este tutorial, ha aprendido a utilizar la función de SQL Server DATEDIFF() para calcular la diferencia entre dos valores de fecha.

Deja una respuesta

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