DATE_PART
Equivalente en MySQL:
Devuelve la parte indicada de una fecha, una hora o un intervalo.
PostgreSQL 17.9
DATE_PART(field, source)- field
- Nombre de la parte como cadenatext'century''day''decade''dow''doy''epoch''hour''isodow''isoyear''julian''microseconds''millennium''milliseconds''minute''month''quarter''second''timezone''timezone_hour''timezone_minute''week''year'
- source
- Fecha, hora o intervalotimestamp | interval
Valor devuelto
Número de coma flotante (double precision), por ejemplo 2023 para year
Ejemplos
Año de una fecha
PostgreSQL 17.9
SELECT DATE_PART('year', TIMESTAMP '2023-01-01');El domingo como día 0 de la semana
PostgreSQL 17.9
SELECT DATE_PART('dow', DATE '2024-03-10');Número de pagos por trimestre
PostgreSQL 17.9
SELECT DATE_PART('quarter', date) AS quarter,
COUNT(*) AS payments
FROM Payments
GROUP BY quarter
ORDER BY quarter;Detalles
A diferencia de EXTRACT, que devuelve numeric, DATE_PART puede perder precisión.
Día de la semana: 'dow' da 0 para el domingo y 6 para el sábado; 'isodow' va de 1 para el lunes a 7 para el domingo. DAYOFWEEK de MySQL cuenta de otra forma: el domingo es 1 y el sábado, 7.
'week' es el número de semana ISO: la semana empieza el lunes y los primeros días de enero pueden pertenecer a la última semana del año anterior. Por eso el número de semana se usa junto con 'isoyear', no con 'year': para 2021-01-01 la semana es la 53 y el año ISO, 2020.