Fonction extract

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

Retourne field de source.

Syntaxe

extract(field FROM source)

Arguments

  • field : mot clé qui sélectionne la partie de source à extraire.
  • source : Une expression DATE, TIMESTAMP ou INTERVAL.

Retours

Si field 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

Exemples

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

> SELECT extract(week FROM TIMESTAMP'2019-08-12 01:00:00.123456');
 33

> SELECT extract(DAY FROM DATE'2019-08-12');
 12

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

> SELECT extract(MONTHS FROM INTERVAL '2-11' YEAR TO MONTH);
 11

> SELECT extract(SECONDS FROM INTERVAL '5:00:30.001' HOUR TO SECOND);
 30.001000