Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Fonction
S’applique à :
Databricks SQL
Databricks Runtime 13.3 LTS et ultérieur
Retourne la différence entre deux dates en jours, ou entre deux horodatages dans une unité spécifiée.
Syntaxe
date_diff(endDate, startDate)
date_diff(unit, start, end)
unit
{ MICROSECOND |
MILLISECOND |
SECOND |
MINUTE |
HOUR |
DAY |
WEEK |
MONTH |
QUARTER |
YEAR }
Arguments
-
endDate: une expressionDATEde fin. -
startDate: une expressionDATEde début. -
unit: unité de mesure. -
start: une expressionTIMESTAMPde début. -
end: une expressionTIMESTAMPde fin.
Retours
- Pour
date_diff(endDate, startDate), etINTEGERcela représente le nombre de jours destartDateàendDate. - Pour
date_diff(unit, start, end), aBIGINTqui représente la différence entrestartetendmesurée enunits. Cette forme est un synonyme detimestampdifffonction.
Le résultat est négatif si la valeur de départ est supérieure à la valeur de fin.
La fonction compte les unités entières écoulées sur la base de UTC avec un DAY correspondant à 86400 secondes.
Un mois est considéré comme écoulé lorsque le mois calendrier a augmenté et que le jour calendrier et l’heure sont égales ou supérieures au début. Les semaines, les trimestres et les années suivent.
Exemples
> 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