PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Postgresql obtient le premier et le dernier jour de toute la semaine iso d'une année donnée

Vous pouvez utiliser generate_series() pour éviter l'arithmétique compliquée du CTE et de la date. Voici un exemple pour vous aider à démarrer :

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

Vous voudrez ajouter un cas au deuxième trimestre pour éliminer tout ce qui se passe en 2017, et il pourrait être réécrit pour passer une semaine à la fois, mais cela devrait vous mettre sur la bonne voie.