PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Postgresql ottiene il primo e l'ultimo giorno di tutta la settimana iso in un determinato anno

Puoi usare generate_series() per evitare il contorto CTE e l'aritmetica della data. Ecco un esempio per iniziare:

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

Ti consigliamo di aggiungere un caso nel secondo mandato per eliminare qualsiasi cosa nel 2017 e potrebbe essere riscritto per passare una settimana alla volta, ma dovrebbe portarti sulla strada giusta.