PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Postgresql obtém primeiro e último dia de toda a semana iso em um determinado ano


Você pode usar generate_series() para evitar o CTE complicado e aritmética de data. Aqui está um exemplo para você começar:
select d, d + interval '6 days'
from generate_series('2016-01-01'::date, '2016-12-31'::date, '1 day'::interval) d
where date_trunc('week', d) = d

Você vai querer adicionar um caso no segundo mandato para eliminar qualquer coisa em 2017, e isso pode ser reescrito para uma semana de cada vez, mas deve colocá-lo no caminho certo.