Compartir a través de


DATEDIFF (expresión de 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

Comentarios

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)