La requête suivante permet de connaître pour chaque mois d'une période donnée (ici de l'année courante) son nombre de jours.
SELECT to_char(MONTH, 'FMMonth YYYY') AS MONTH, date_part('day',MONTH + '1 month - 1 day'::INTERVAL) AS lastday FROM ( SELECT (date_part('year', CURRENT_DATE) || '-' || m || '-01')::DATE AS MONTH FROM generate_series(1, 12) m) months;
On obtient le résultat suivant :
month | lastday ----------------+--------- January 2006 | 31 February 2006 | 28 March 2006 | 31 April 2006 | 30 May 2006 | 31 June 2006 | 30 July 2006 | 31 August 2006 | 31 September 2006 | 30 October 2006 | 31 November 2006 | 30 December 2006 | 31 (12 rows)
–
dim le 08/09/2006