Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Função
Aplica-se a:
Databricks SQL
Databricks Runtime 13.3 LTS e superior
Devolve a diferença entre duas datas em dias, ou entre dois carimbos temporais numa unidade especificada.
Sintaxe
date_diff(endDate, startDate)
date_diff(unit, start, end)
unit
{ MICROSECOND |
MILLISECOND |
SECOND |
MINUTE |
HOUR |
DAY |
WEEK |
MONTH |
QUARTER |
YEAR }
Argumentos
-
endDate: Uma expressão finalDATE. -
startDate: Uma expressão inicialDATE. -
unit: Uma unidade de medida. -
start: Uma expressão inicialTIMESTAMP. -
end: Uma expressão finalTIMESTAMP.
Devoluções
- Para
date_diff(endDate, startDate), eINTEGERque representa o número de dias destartDateparaendDate. - Para
date_diff(unit, start, end), aBIGINTque representa a diferença entrestarteendmedida emunits. Esta forma é sinónimo detimestampdifffunção.
O resultado é negativo se o valor inicial for maior do que o valor final.
A função conta unidades inteiras decorridas com base em UTC um DAY ser 86400 segundos.
Considera-se decorrido um mês quando o mês civil tiver aumentado e o dia e a hora do calendário forem iguais ou superiores ao início. Seguem-se semanas, trimestres e anos.
Exemplos
> SELECT date_diff(DATE'2009-07-31', DATE'2009-07-30');
1
-- One second shy of a month elapsed
> SELECT date_diff(MONTH, TIMESTAMP'2021-02-28 12:00:00', TIMESTAMP'2021-03-28 11:59:59');
0
-- One month has passed even though its' not end of the month yet because day and time line up.
> SELECT date_diff(MONTH, TIMESTAMP'2021-02-28 12:00:00', TIMESTAMP'2021-03-28 12:00:00');
1
-- Start is greater than the end
> SELECT date_diff(YEAR, DATE'2021-01-01', DATE'1900-03-28');
-120