Hi Sérgio:

On Sun, Dec 7, 2014 at 9:11 PM, Sérgio Saquetim <sergiosaque...@gmail.com>
wrote:

> I've noticed a strange behavior in the generate_series functions.
>
> I'm trying to get all days between a start and an end date including the
> bounds. So naturally I've tried something like the query below
> ​.
>

As both your examples and previous responses highlight your problem is that
generate_series is not defined for dates, I'll avoid further comments on
this. As you are using dates and your working example is using dates I
would suggest rewriting your query around to avoid implicits cast problems.
Date difference is integer, generate_series is defined on them, so:


=> select generate_series(0,'2014-10-20'::date - '2014-10-10'::date);
 generate_series
-----------------
               0
               1
               2
               3
               4
               5
               6
               7
               8
               9
              10
(11 rows)

cdrs=> select '2014-10-10'::date+ generate_series(0,'2014-10-20'::date -
'2014-10-10'::date);
  ?column?
------------
 2014-10-10
 2014-10-11
 2014-10-12
 2014-10-13
 2014-10-14
 2014-10-15
 2014-10-16
 2014-10-17
 2014-10-18
 2014-10-19
 2014-10-20
(11 rows)

Or even

=> select ini + generate_series(0, fin-ini) from (select '2014-10-10'::date
as ini, '2014-10-20'::date as fin) data ;
  ?column?
------------
 2014-10-10
 2014-10-11
 2014-10-12
 2014-10-13
 2014-10-14
 2014-10-15
 2014-10-16
 2014-10-17
 2014-10-18
 2014-10-19
 2014-10-20
(11 rows)


Regards
   Francisco Olarte.

Reply via email to