siglo
El siglo
SELECT EXTRACT(CENTURY FROM TIMESTAMP '2000-12-16 12:21:13');Result: 20SELECT EXTRACT(CENTURY FROM TIMESTAMP '2001-02-16 20:38:40');Result: 21
El primer siglo comienza en el 0001-01-01 00:00:00 AD, aunque no lo sabían en ese momento. Esta definición se aplica a todos los países con calendario gregoriano. No hay número de siglo 0, se pasa de -1 siglo a 1 siglo. Si no está de acuerdo con esto, escriba su queja a: Papa, Catedral San Pedro de Roma, Vaticano.
Las versiones de PostgreSQL anteriores a la 8.0 no seguían la numeración convencional de los siglos, sino que simplemente devolvían el campo del año dividido por 100.
día
Para los valores de marca de tiempo, el campo día (del mes) (1 – 31) ; para valores de intervalo, el número de días
SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 20:38:40');Result: 16SELECT EXTRACT(DAY FROM INTERVAL '40 days 1 minute');Result: 40
década
El campo del año dividido por 10
SELECT EXTRACT(DECADE FROM TIMESTAMP '2001-02-16 20:38:40');Result: 200
día
El día de la semana como domingo (0) a sábado (6)
SELECT EXTRACT(DOW FROM TIMESTAMP '2001-02-16 20:38:40');Result: 5
Nótese que la numeración del día de la semana de extract
difiere de la de la función to_char(..., 'D')
.
doy
El día del año (1 – 365/366)
SELECT EXTRACT(DOY FROM TIMESTAMP '2001-02-16 20:38:40');Result: 47
epoch
Para los valores de fecha y marca de tiempo, el número de segundos desde 1970-01-01 00:00:00 UTC (puede ser negativo); para los valores de intervalo, el número total de segundos en el intervalo
SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE '2001-02-16 20:38:40.12-08');Result: 982384720.12SELECT EXTRACT(EPOCH FROM INTERVAL '5 days 3 hours');Result: 442800
Así es como se puede convertir un valor de época en una marca de tiempo:
SELECT TIMESTAMP WITH TIME ZONE 'epoch' + 982384720.12 * INTERVAL '1 second';
(La función to_timestamp
encapsula la conversión anterior.)
hora
El campo de la hora (0 – 23)
SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 20:38:40');Result: 20
isodow
El día de la semana como lunes (1) a domingo (7)
SELECT EXTRACT(ISODOW FROM TIMESTAMP '2001-02-18 20:38:40');Result: 7
Esto es idéntico a dow excepto el domingo. Esto coincide con la numeración del día de la semana ISO 8601.
isoyear
El año de numeración de la semana ISO 8601 en el que cae la fecha (no aplicable a los intervalos)
SELECT EXTRACT(ISOYEAR FROM DATE '2006-01-01');Result: 2005SELECT EXTRACT(ISOYEAR FROM DATE '2006-01-02');Result: 2006
Cada año de numeración de la semana ISO 8601 comienza con el lunes de la semana que contiene el 4 de enero, por lo que a principios de enero o a finales de diciembre el año ISO puede ser diferente del año gregoriano. Vea el campo de la semana para más información.
Este campo no está disponible en las versiones de PostgreSQL anteriores a la 8.3.
microsegundos
El campo de los segundos, incluyendo las partes fraccionarias, multiplicado por 1 000 000; tenga en cuenta que esto incluye los segundos completos
SELECT EXTRACT(MICROSECONDS FROM TIME '17:12:28.5');Result: 28500000
milenio
El milenio
SELECT EXTRACT(MILLENNIUM FROM TIMESTAMP '2001-02-16 20:38:40');Result: 3
Los años del 1900 están en el segundo milenio. El tercer milenio comenzó el 1 de enero de 2001.
Las versiones de PostgreSQL anteriores a la 8.0 no seguían la numeración convencional de los milenios, sino que simplemente devolvían el campo del año dividido por 1000.
milisegundos
El campo de los segundos, incluyendo las partes fraccionarias, multiplicado por 1000. Tenga en cuenta que esto incluye los segundos completos.
SELECT EXTRACT(MILLISECONDS FROM TIME '17:12:28.5');Result: 28500
minutos
El campo de minutos (0 – 59)
SELECT EXTRACT(MINUTE FROM TIMESTAMP '2001-02-16 20:38:40');Result: 38
mes
Para valores de marca de tiempo, el número del mes dentro del año (1 – 12) ; para los valores de intervalo, el número de meses, módulo 12 (0 – 11)
SELECT EXTRACT(MONTH FROM TIMESTAMP '2001-02-16 20:38:40');Result: 2SELECT EXTRACT(MONTH FROM INTERVAL '2 years 3 months');Result: 3SELECT EXTRACT(MONTH FROM INTERVAL '2 years 13 months');Result: 1
trimestre
El trimestre del año (1 – 4) en el que se encuentra la fecha
SELECT EXTRACT(QUARTER FROM TIMESTAMP '2001-02-16 20:38:40');Result: 1
segundo
El campo de los segundos, incluyendo las partes fraccionarias (0 – 59)
SELECT EXTRACT(SECOND FROM TIMESTAMP '2001-02-16 20:38:40');Result: 40SELECT EXTRACT(SECOND FROM TIME '17:12:28.5');Result: 28.5
zona horaria
El desfase de la zona horaria con respecto a UTC, medido en segundos. Los valores positivos corresponden a zonas horarias al este de UTC, los valores negativos a zonas al oeste de UTC. (Técnicamente, PostgreSQL utiliza UT1 porque no se manejan los segundos bisiestos.)
timezone_hour
El componente de la hora del desplazamiento de la zona horaria
timezone_minute
El componente de los minutos del desplazamiento de la zona horaria
week
El número de la semana ISO 8601 del año. Por definición, las semanas ISO comienzan los lunes y la primera semana de un año contiene el 4 de enero de ese año. En otras palabras, el primer jueves de un año está en la semana 1 de ese año.
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, 2005-01-01 forma parte de la 53ª semana del año 2004, y 2006-01-01 forma parte de la 52ª semana del año 2005, mientras que 2012-12-31 forma parte de la primera semana de 2013. Se recomienda utilizar el campo isoyear junto con week para obtener resultados consistentes.
SELECT EXTRACT(WEEK FROM TIMESTAMP '2001-02-16 20:38:40');Result: 7
year
El campo year. Tenga en cuenta que no hay 0 AD, por lo que restar los años BC de los años AD debe hacerse con cuidado.
SELECT EXTRACT(YEAR FROM TIMESTAMP '2001-02-16 20:38:40');Result: 2001