DATEDIFF (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çã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)
Consulte também