Fonction extract
S’applique à : Databricks SQL Databricks Runtime
Retourne field
de source
.
Syntaxe
extract(field FROM source)
Arguments
field
: mot clé qui sélectionne la partie desource
à extraire.source
: Une expressionDATE
,TIMESTAMP
ouINTERVAL
.
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éeYEAROFWEEK
: 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 2004QUARTER
,QTR
: trimestre (de 1 à 4) de l’année dans laquelle s’inscrit la valeur DateHeureMONTH
,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 2013DAY
,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 / 12MONTH
,MON
,MONS
,MONTHS
: nombre total de mois % 12DAY
,D
,DAYS
: partie jours de l’intervalleHOUR
,H
,HOURS
,HR
,HRS
: nombre d’heures que les microsecondes contiennentMINUTE
,M
,MIN
,MINS
,MINUTES
: nombre de minutes restantes après retrait des heures des microsecondesSECOND
,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