Fonction date_diff

S’applique à :coche marquée oui Databricks SQL oui coché 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 expression DATE de fin.
  • startDate : une expression DATE de début.
  • unit : unité de mesure.
  • start : une expression TIMESTAMP de début.
  • end : une expression TIMESTAMP de fin.

Retours

  • Pour date_diff(endDate, startDate), et INTEGER cela représente le nombre de jours de startDate à endDate.
  • Pour date_diff(unit, start, end), a BIGINT qui représente la différence entre start et end mesurée en units. Cette forme est un synonyme de timestampdiff fonction.

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