- Catégories :
TIMESTAMPDIFF¶
Calcule la diffĂ©rence entre deux expressions de date, dâheure ou dâhorodatage en fonction de la partie de date ou dâheure spĂ©cifiĂ©e. La fonction renvoie le rĂ©sultat de la soustraction du deuxiĂšme argument et du troisiĂšme argument.
Alternative pour DATEDIFF.
Syntaxe¶
TIMESTAMPDIFF( <date_or_time_part> , <date_or_time_expr1> , <date_or_time_expr2> )
Arguments¶
date_or_time_part
LâunitĂ© de temps. Doit ĂȘtre lâune des valeurs rĂ©pertoriĂ©es dans Parties de date et dâheure prises en charge (par exemple,
month
). La valeur peut ĂȘtre un littĂ©ral de chaĂźne ou peut ĂȘtre sans guillemets (par exemple'month'
oumonth
).date_or_time_expr1
,date_or_time_expr2
Les valeurs Ă comparer. Doit ĂȘtre une date, une heure, un horodatage ou une expression pouvant correspondre Ă une date, une heure ou un horodatage. La valeur
date_or_time_expr1
est soustraite dedate_or_time_expr2
.
Renvoie¶
Renvoie un entier reprĂ©sentant le nombre dâunitĂ©s (secondes, jours, etc.) entre date_or_time_expr2
et date_or_time_expr1
.
Notes sur lâutilisation¶
Les valeurs de sortie peuvent ĂȘtre nĂ©gatives, par exemple, -12 jours.
La fonction prend en charge les années, les trimestres, les mois, les semaines, les jours, les heures, les minutes, les secondes, les millisecondes, les microsecondes et les nanosecondes.
Si
date_or_time_part
estweek
(ou lâune de ses variations), la sortie est contrĂŽlĂ©e par le paramĂštre de session WEEK_START. Pour plus de dĂ©tails, y compris des exemples, voir Semaines civiles et jours de semaine.LâunitĂ© (par exemple,
month
) utilisĂ©e pour calculer la diffĂ©rence dĂ©termine quelles parties du champ DATE, TIME ou TIMESTAMP sont Ă©valuĂ©es. Ainsi, lâunitĂ© dĂ©termine la prĂ©cision du rĂ©sultat.Les unitĂ©s plus petites ne sont pas utilisĂ©es, les valeurs ne sont donc pas arrondies. Par exemple, mĂȘme si la diffĂ©rence entre le 1er janvier 2021 et le 28 fĂ©vrier 2021 est plus proche de deux mois que dâun mois, ce qui suit donne un mois :
DATEDIFF(month, '2021-01-01'::DATE, '2021-02-28'::DATE)
Pour une valeur DATE :
year
utilise uniquement lâannĂ©e et ignore toutes les autres parties.month
utilise le mois et lâannĂ©e.day
utilise la date entiĂšre.
Pour une valeur TIME :
hour
utilise uniquement lâheure et ignore toutes les autres parties.minute
utilise lâheure et les minutes.second
utilise lâheure, la minute et la seconde, mais pas les secondes fractionnĂ©es.millisecond
utilise lâheure, la minute, la seconde et les trois premiers chiffres des secondes fractionnĂ©es. Les secondes fractionnĂ©es ne sont pas arrondies. Par exemple,DATEDIFF(milliseconds, '2024-02-20 21:18:41.0000', '2024-02-20 21:18:42.1239')
renvoie 1,123 seconde, et non 1,124 seconde.microsecond
utilise lâheure, la minute, la seconde et les six premiers chiffres des secondes fractionnelles. Les secondes fractionnĂ©es ne sont pas arrondies.nanosecond
utilise lâheure, la minute, la seconde et les neuf chiffres des secondes fractionnelles.
Pour une valeur TIMESTAMP :
Les rĂšgles correspondent aux rĂšgles pour les types de donnĂ©es DATE et TIME ci-dessus. Seules lâunitĂ© spĂ©cifiĂ©e et les unitĂ©s plus grandes sont utilisĂ©es.
Exemples¶
Pour des exemples, voir DATEDIFF. (DATEDIFF, TIMEDIFF et TIMESTAMPDIFF utilisent tous le mĂȘme format de base).