tsrange range error on DST transition values

2.1k views Asked by At

I have a problem with saving values of type tsrange in PostgreSQL when only one of the intervals is in daylight saving time and the interval is less than 1 hour long.

For example I want to save a 45 minutes long time range ["2013-03-09 01:30:00","2013-03-09 01:15:00"], however I'm getting an error range lower bound must be less than or equal to range upper bound

Is there a way to save these kind of time ranges into PostgreSQL using tsrange type?

1

There are 1 answers

0
Clodoaldo Neto On BEST ANSWER

The input must be already "timezoned" then cast to timestamp without time zone

select tsrange(
    ('2013-02-17 01:30:00'::timestamp at time zone 'BRST')::timestamp,
    ('2013-02-17 01:15:00'::timestamp at time zone 'BRT')::timestamp
);
                    tsrange                    
-----------------------------------------------
 ["2013-02-17 00:30:00","2013-02-17 01:15:00")