Compartilhar via


DATEDIFF (expressão SSIS)

Retorna o número de limites de data e hora entre duas datas especificadas. O parâmetro datepart identifica quais limites de data e hora serão comparados.

Sintaxe

DATEDIFF(datepart, startdate, endate)

Argumentos

  • datepart
    É o parâmetro que especifica qual parte da data será comparada e para a qual um valor será retornado.

  • startdate
    É a data de início do intervalo.

  • endate
    É a data de término do intervalo.

Tipos de resultado

DT_I4

Comentários

A tabela a seguir lista as partes da data e as abreviações reconhecidas pelo avaliador de expressão.

Parte da data

Abreviações

Ano

aa, aaaa

Trimestre

tt, t

Mês

mm, m

Dia do ano

da, a

Dia

dd, d

Semana

sem

Dia da semana

ds, s

Hora

Hh

Minuto

mi, n

Segundo

ss, s

Milissegundos

Ms

DATEDIFF retornará um resultado nulo se qualquer argumento for nulo.

Um literal de data deve ser convertido explicitamente em um dos tipos de dados de data. Para obter mais informações, consulte Tipos de dados do Integration Services.

ObservaçãoObservação

A expressão não é validada quando um literal de data é convertido explicitamente em um destes tipos de dados de data: DT_DBTIMESTAMPOFFSET, DT_DBTIMESTAMP2 e DT_DBTIME2.

Ocorrerá um erro se uma data não for inválida, se a unidade de data ou hora não for uma cadeia de caracteres, se a data de início não for uma data ou se a data de término não for uma data.

Se a data de término for anterior à data de início, a função retornará um número negativo. Se as datas de início e término forem iguais ou estiverem dentro do mesmo intervalo, a função retornará zero.

Exemplos

Este exemplo calcula o número de dias entre dois literals de data. Se a data estiver no formato "mm/dd/aaaa", a função retornará 7.

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

Este exemplo retorna o número de meses entre um literal de data e a data atual.

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

Este exemplo retorna o número de semanas entre a data na coluna ModifiedDate e a variável YearEndDate. Se YearEndDate tiver um tipo de dados date, nenhuma conversão explícita será necessária.

DATEDIFF("Week", ModifiedDate,@YearEndDate)