Compartir a través de


DATEDIFF (SSIS)

Devuelve el número de límites de fecha y hora entre dos fechas especificadas. El parámetro datepart identifica los límites de fecha y hora que se van a comparar.

Sintaxis

DATEDIFF(datepart, startdate, endate)

Argumentos

  • datepart
    Parámetro que especifica la parte de la fecha que se va a comparar y para la que se devuelve un valor.

  • startdate
    Fecha de inicio del intervalo.

  • endate
    Fecha de finalización del intervalo.

Tipos de resultado

DT_I4

Notas

En la tabla siguiente se incluyen las partes de fecha y las abreviaturas reconocidas por el evaluador de expresiones.

Parte de la fecha

Abreviaturas

Year (Año)

yy, yyyy

Quarter (Trimestre)

qq, q

Month (Mes)

mm, m

Dayofyear (Día del año)

dy, y

Day (Día)

dd, d

Week (Semana)

wk, ww

Weekday (Día de la semana)

dw, w

Hour (Hora)

Hh

Minute (Minuto)

mi, n

Second (Segundo)

ss, s

Millisecond (Milisegundo)

Ms

DATEDIFF devuelve un resultado NULL si alguno de los argumentos es NULL.

Un literal de tipo fecha debe convertirse explícitamente a cualquiera de los tipos de datos de fecha. Para obtener más información, vea Tipos de datos de Integration Services.

[!NOTA]

La expresión no puede validarse cuando un literal de fecha se convierte explícitamente en uno de estos tipos de datos de fecha: DT_DBTIMESTAMPOFFSET, DT_DBTIMESTAMP2 y DT_DBTIME2.

Se producirá un error si una fecha no es válida, si la fecha o unidad de tiempo no es una cadena, si la fecha de inicio no es una fecha o si la fecha de finalización no es una fecha.

Si la fecha de finalización es anterior a la fecha de inicio, la función devuelve un número negativo. Si las fechas de inicio y de finalización coinciden o están dentro del mismo intervalo, la función devuelve cero.

Ejemplos

Este ejemplo calcula el número de días entre dos literales de fecha. Si la fecha tiene el formato "mm/dd/aaaa", la función devuelve 7.

DATEDIFF("dd", (DT_DBTIMESTAMP)"8/1/2003", (DT_DBTIMESTAMP)"8/8/2003")

Este ejemplo devuelve el número de meses entre un literal de fecha y la fecha actual.

DATEDIFF("mm", (DT_DBTIMESTAMP)"8/1/2003",GETDATE())

Este ejemplo devuelve el número de semanas entre la fecha de la columna ModifiedDate y la variable YearEndDate. Si YearEndDate tiene el tipo de datos date, no es necesario realizar una conversión explícita.

DATEDIFF("Week", ModifiedDate,@YearEndDate)