sqlpostgresqldatedate-comparison

Getting date list in a range in PostgreSQL


I'd like to get the list of days between the two dates (including them) in a PostgreSQL database. For example, if I had:

then the result should be:

29 june 2012
30 june 2012 
1 july 2012 
2 july 2012 
3 july 2012

What would be the best way of doing this in PostgreSQL?


Solution

  • select CURRENT_DATE + i 
    from generate_series(date '2012-06-29'- CURRENT_DATE, 
         date '2012-07-03' - CURRENT_DATE ) i
    

    or even shorter:

    select i::date from generate_series('2012-06-29', 
      '2012-07-03', '1 day'::interval) i