>>>>> "Tom" == Tom Lane <tgl@sss.pgh.pa.us> writes:
>> When I use postgres function:
>> SELECT generate_series('2016-08-01', '2016-08-31', '1
>> day'::interval)::date
>> it gives me the corresponding list of days but for some reason it misses the
>> day 2016-08-31.
Tom> In addition to Andrew's questions:
Tom> * What time zone are you using?
I discovered that this is reproducible in America/Santiago
Tom> * In that zone, is there a DST rule change near 2016-08-31?
The DST change seems to be at midnight local on 2016-08-14 (who puts
their DST changes at midnight? that breaks things here)
This _looks_ wrong:
set timezone = 'America/Santiago';
select timestamptz '2016-08-13', timestamptz '2016-08-13' + interval '1 day';
timestamptz | ?column?
------------------------+------------------------
2016-08-13 00:00:00-04 | 2016-08-14 01:00:00-03
(1 row)
but I guess it's inevitable, since 2016-08-14 00:00:00 doesn't exist in
the local time, so there's no other possible result to return.
--
Andrew (irc:RhodiumToad)