Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Función EXTRACT
La función EXTRACT devuelve una parte de fecha u hora a partir de un valor TIMESTAMP, TIMESTAMPTZ, TIME o TIMETZ. Algunos ejemplos son día, mes, año, hora, minuto, segundo, milisegundo o microsegundo de una marca de tiempo.
Sintaxis
EXTRACT(datepart FROM source)
Argumentos
- datepart
-
El subcampo de una fecha u hora que se va a extraer, como día, mes, año, hora, minuto, segundo, milisegundo o microsegundo. Para obtener los valores posibles, consulte Partes de fecha para funciones de fecha o marca temporal.
- origen
-
Una columna o una expresión que se evalúa como un tipo de datos TIMESTAMP, TIMESTAMPTZ, TIME o TIMETZ.
Tipo de retorno
INTEGER si el valor de origen se evalúa como tipo de datos TIMESTAMP, TIME o TIMETZ.
DOUBLE PRECISION si el valor de origen se evalúa como el tipo de datos TIMESTAMPTZ.
Ejemplos con TIMESTAMP
En el siguiente ejemplo, se determinan los números de las semanas para las ventas en las que el precio pagado fue 10 000 USD o más.
select salesid, extract(week from saletime) as weeknum from sales where pricepaid > 9999 order by 2; salesid | weeknum --------+--------- 159073 | 6 160318 | 8 161723 | 26
En el siguiente ejemplo, se devuelve el valor de minutos de un valor de marca temporal literal.
select extract(minute from timestamp '2009-09-09 12:08:43'); date_part --
En el siguiente ejemplo, se devuelve el valor de milisegundos de un valor timestamp literal.
select extract(ms from timestamp '2009-09-09 12:08:43.101'); date_part ----------- 101
Ejemplos con TIMESTAMPTZ
En el siguiente ejemplo, se devuelve el valor de año de un valor timestamptz literal.
select extract(year from timestamptz '1.12.1997 07:37:16.00 PST'); date_part ----------- 1997
Ejemplos con TIME
La siguiente tabla de ejemplo, TIME_TEST, tiene una columna TIME_VAL (tipo TIME) con tres valores insertados.
select time_val from time_test; time_val --------------------- 20:00:00 00:00:00.5550 00:58:00
En el siguiente ejemplo, se extraen los minutos de cada time_val.
select extract(minute from time_val) as minutes from time_test; minutes ----------- 0 0 58
En el siguiente ejemplo, se extraen las horas de cada time_val.
select extract(hour from time_val) as hours from time_test; hours ----------- 20 0 0
En el siguiente ejemplo, se extraen los milisegundos de un valor literal.
select extract(ms from time '18:25:33.123456'); date_part ----------- 123
Ejemplos con TIMETZ
La siguiente tabla de ejemplo, TIMETZ_TEST, tiene una columna TIMETZ_VAL (tipo TIMETZ) con tres valores insertados.
select timetz_val from timetz_test; timetz_val ------------------ 04:00:00+00 00:00:00.5550+00 05:58:00+00
En el siguiente ejemplo, se extraen las horas de cada timetz_val.
select extract(hour from timetz_val) as hours from time_test; hours ----------- 4 0 5
En el siguiente ejemplo, se extraen los milisegundos de un valor literal. Los literales no se convierten a UTC antes de que se procese la extracción.
select extract(ms from timetz '18:25:33.123456 EST'); date_part ----------- 123
En el siguiente ejemplo, se devuelve la hora de desfase horario respecto a UTC a partir de un valor timetz literal.
select extract(timezone_hour from timetz '1.12.1997 07:37:16.00 PDT'); date_part ----------- -7