Función extract
Se aplica a: Databricks SQL Databricks Runtime
Devuelve field
de source
.
Sintaxis
extract(field FROM source)
Argumentos
field
: palabra clave que selecciona qué parte desource
debe extraerse.source
: Una expresiónDATE
,TIMESTAMP
oINTERVAL
.
Devoluciones
Si field
es SECOND
, devuelve DECIMAL(8, 6)
.
En todos los demás casos, un INTEGER
.
Valores admitidos de field
cuando source
es DATE
o TIMESTAMP
:
YEAR
,Y
,YEARS
,YR
,YRS
: el campo de añoYEAROFWEEK
: el año de numeración de la semana ISO 8601 al que pertenece el datetime. Por ejemplo, el 2 de enero de 2005 forma parte de la semana 53 del año 2004, por lo que el resultado es 2004QUARTER
,QTR
: el trimestre (de 1 a 4) del año al que pertenece el datetimeMONTH
,MON
,MONS
,MONTHS
: el campo mes (1 - 12)WEEK
,W
,WEEKS
: el número de la semana ISO 8601 del año basado en semanas. Se considera que la semana comienza el lunes y la semana 1 es la primera semana con >3 días. En el sistema de numeración de semanas ISO, es posible que las fechas de principios de enero formen parte de la semana 52 o 53 del año anterior y que las fechas de finales de diciembre formen parte de la primera semana del año siguiente. Por ejemplo, el 2 de enero de 2005 forma parte de la semana 53 del año 2004, mientras que el 31 de diciembre de 2012 forma parte de la primera semana de 2013DAY
,D
,DAYS
: el día del campo mes (1 a 31)DAYOFWEEK
,DOW
: el día de la semana para datetime de domingo (1) a sábado (7)DAYOFWEEK_ISO
,DOW_ISO
: día de la semana basado en ISO 8601 para datetime de lunes (1) a domingo (7)DOY
: el día del año (1 - 365/366)HOUR
,H
,HOURS
,HR
,HRS
: el campo de hora (0 a 23)MINUTE
,M
,MIN
,MINS
,MINUTES
: el campo de minutos (0 - 59)SECOND
,S
,SEC
,SECONDS
,SECS
: el campo de segundos, incluidas las partes decimales
Valores admitidos de field
cuando source
es INTERVAL
(sin distinción entre mayúsculas y minúsculas):
YEAR
,Y
,YEARS
,YR
,YRS
: el total de meses/12MONTH
,MON
,MONS
,MONTHS
: el total de meses % 12DAY
,D
,DAYS
: la parte del intervalo que corresponde a los díasHOUR
,H
,HOURS
,HR
,HRS
: cuántas horas contiene el microsegundoMINUTE
,M
,MIN
,MINS
,MINUTES
: cuántos minutos quedan después de extraer las horas de los microsegundosSECOND
,S
,SEC
,SECONDS
,SECS
: cuántos segundos con decimales quedan después de extraer las horas y los minutos de los microsegundos
Ejemplos
> 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