sql >> Base de Datos >  >> RDS >> PostgreSQL

Obtenga el número de semana de una fecha en PostgreSQL

En PostgreSQL puede usar extract() función para obtener el número de semana de una fecha.

También puede usar el date_part() función para hacer lo mismo.

Ejemplo 1:La función extract()

Aquí hay un ejemplo del uso de extract() función para extraer la semana de una fecha.

SELECT extract(week from date '2020-12-27') AS "Week Number";

Resultado:

 Week Number 
-------------
          52

Ejemplo 2:La función date_part()

He aquí cómo hacer lo mismo usando date_part() función.

SELECT date_part('week', date '2020-12-27') AS "Week Number";

Resultado:

 Week Number 
-------------
          52

Ejemplo 3:Acerca del sistema de numeración de semanas ISO

Si obtiene resultados que no esperaba, podría deberse a la forma en que se define la numeración de semanas ISO.

Las semanas ISO comienzan los lunes y la primera semana de un año contiene el 4 de enero de ese año. Por lo tanto, 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.

Ejemplo:

SELECT 
  extract(week from date '2021-01-03') AS "2021-01-03",
  extract(week from date '2021-01-04') AS "2021-01-04";

Resultado:

 2021-01-03 | 2021-01-04 
------------+------------
         53 |          1

En este caso, el 3 de enero de 2021 sigue siendo parte de la última semana de 2020. La primera semana de 2021 no comienza hasta el 4 de enero.

A continuación se muestra otro ejemplo que demuestra que una fecha al final del año forma parte de la primera semana del año siguiente.

SELECT 
  extract(week from date '2024-12-29') AS "2024-12-29",
  extract(week from date '2024-12-30') AS "2024-12-30";

Resultado:

 2024-12-29 | 2024-12-30 
------------+------------
         52 |          1

En este caso, el 29 de diciembre de 2024 es parte de la última semana de 2024, pero tan pronto como llegamos al 30 de diciembre, estamos en la primera semana de 2025.