Partager via


Fonction date_part

S’applique à :case marquée oui Databricks SQL case marquée oui Databricks Runtime

Extrait une partie de la date, du timestamp ou de l’intervalle.

Syntaxe

date_part(fieldStr, expr)

Arguments

  • fieldStr : Un STRING littéral.
  • expr : Une expression DATE, TIMESTAMP ou INTERVAL.

Retours

Si fieldStr est 'SECOND', DECIMAL(8, 6). Dans tous les autres cas, un INTEGER.

Les valeurs de field prises en charge quand source est DATE ou TIMESTAMP sont :

  • 'YEAR', 'Y', 'YEARS', 'YR', 'YRS' : champ de l’année
  • 'YEAROFWEEK' : année selon la numérotation de semaine ISO 8601 dans laquelle s’inscrit la valeur DateHeure. Par exemple, 2005-01-02 faisant partie de la 53e semaine de l’année 2004, le résultat est 2004
  • 'QUARTER', 'QTR' : trimestre (de 1 à 4) de l’année dans laquelle s’inscrit la valeur DateHeure
  • 'MONTH', 'MON', 'MONS', 'MONTHS' : champ du mois (de 1 à 12)
  • 'WEEK', 'W', 'WEEKS' : numéro de l’année ISO 8601 basé sur la semaine. Une semaine est considérée comme débutant le lundi et la semaine 1 est la première semaine de >3 jours. Dans le système de numérotation des semaines ISO, il est possible que des dates du tout début du mois de janvier fassent partie de la 52e ou 53e semaine de l’année précédente, et que des dates de la toute fin du mois de décembre fassent partie de la première semaine de l’année suivante. Par exemple, 2005-01-02 fait partie de la 53e semaine de l’année 2004, tandis que 2012-12-31 fait partie de la première semaine de 2013
  • 'DAY', 'D', 'DAYS' : champ du jour du mois (de 1 à 31)
  • 'DAYOFWEEK', 'DOW' : jour de la semaine correspondant à DateHeure, du dimanche (1) au samedi (7)
  • 'DAYOFWEEK_ISO', 'DOW_ISO' : jour de la semaine ISO 8601 pour la DateHeure, du lundi (1) au dimanche (7)
  • 'DOY' : jour de l’année - (de 1 à 365/366)
  • 'HOUR', 'H', 'HOURS', 'HR', 'HRS' : champ des heures (de 0 à 23)
  • 'MINUTE', 'M', 'MIN', 'MINS', 'MINUTES' : champ des minutes (de 0 à 59)
  • 'SECOND', 'S', 'SEC', 'SECONDS', 'SECS' : champ des secondes, incluant des parties fractionnaires

Les valeurs de field prises en charge quand source est INTERVAL sont les suivantes, sans sensibilité à la casse :

  • 'YEAR', 'Y', 'YEARS', 'YR', 'YRS' : nombre total de mois / 12
  • 'MONTH', 'MON', 'MONS', 'MONTHS' : nombre total de mois % 12
  • 'DAY', 'D', 'DAYS' : partie jours de l’intervalle
  • 'HOUR', 'H', 'HOURS', 'HR', 'HRS' : nombre d’heures que les microsecondes contiennent
  • 'MINUTE', 'M', 'MIN', 'MINS', 'MINUTES' : nombre de minutes restantes après retrait des heures des microsecondes
  • 'SECOND', 'S', 'SEC', 'SECONDS', 'SECS' : nombre de secondes avec fractions restantes après retrait des heures et minutes des microsecondes

La fonction date_part est synonyme de la fonction extract standard SQL.

Par exemple, date_part('year', CURRENT_DATE) équivaut à extract(YEAR FROM CURRENT_DATE)

Exemples

> SELECT date_part('YEAR', TIMESTAMP'2019-08-12 01:00:00.123456');
 2019

> SELECT date_part('Week', TIMESTAMP'2019-08-12 01:00:00.123456');
 33

> SELECT date_part('day', DATE'2019-08-12');
 224

> SELECT date_part('SECONDS', TIMESTAMP'2019-10-01 00:00:01.000001');
 1.000001

> SELECT date_part('Months', INTERVAL '2-11' YEAR TO MONTH);
 11

> SELECT date_part('seconds', INTERVAL '5:00:30.001' HOUR TO SECOND);
 30.001000