strange timezone problem

Started by Nick Johnsonover 18 years ago4 messagesgeneral
Jump to latest
#1Nick Johnson
ctfdy@spatula.net

Before I open a bug on this, I wanted to do a sanity check, since there
may be something I'm just not seeing.

I'm using PostgreSQL 8.2.3 and seeing this behaviour with timezones:

select create_date from article_lead;
create_date
---------------------------
2007-11-04 16:35:33.17+00
2007-11-04 04:35:36.09+00
2007-11-05 04:35:36.38+00
2007-11-05 16:35:36.67+00
(4 rows)

select create_date from article_lead where create_date >= '2007-11-03
17:00:00.0' and create_date <='2007-11-04 16:00:00.0';
create_date
---------------------------
2007-11-04 04:35:36.09+00

Shouldn't that second row have been in the results of the second query?
(create_date is of timestamptz type).

Also noted this oddity, though it may be unrelated:

set TimeZone='America/Los_Angeles';
select create_date from article_lead;
create_date
---------------------------
2007-11-04 08:35:33.17-08
2007-11-03 21:35:36.09-07 <-- why 07?
2007-11-04 20:35:36.38-08
2007-11-05 08:35:36.67-08

Nick

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Nick Johnson (#1)
Re: strange timezone problem

Nick Johnson <ctfdy@spatula.net> writes:

I'm using PostgreSQL 8.2.3 and seeing this behaviour with timezones:

select create_date from article_lead;
create_date
---------------------------
2007-11-04 16:35:33.17+00
2007-11-04 04:35:36.09+00
2007-11-05 04:35:36.38+00
2007-11-05 16:35:36.67+00
(4 rows)

select create_date from article_lead where create_date >= '2007-11-03
17:00:00.0' and create_date <='2007-11-04 16:00:00.0';
create_date
---------------------------
2007-11-04 04:35:36.09+00

Shouldn't that second row have been in the results of the second query?

Huh? Those results look perfectly sane to me.

set TimeZone='America/Los_Angeles';
select create_date from article_lead;
create_date
---------------------------
2007-11-04 08:35:33.17-08
2007-11-03 21:35:36.09-07 <-- why 07?
2007-11-04 20:35:36.38-08
2007-11-05 08:35:36.67-08

That's correct ... as of last year, DST extends through the first Sunday
in November in the USA.

regards, tom lane

#3Andy Colson
andy@squeakycode.net
In reply to: Nick Johnson (#1)
Re: strange timezone problem

Nick Johnson wrote:

Before I open a bug on this, I wanted to do a sanity check, since there
may be something I'm just not seeing.

I'm using PostgreSQL 8.2.3 and seeing this behaviour with timezones:

select create_date from article_lead;
create_date
---------------------------
2007-11-04 16:35:33.17+00
2007-11-04 04:35:36.09+00
2007-11-05 04:35:36.38+00
2007-11-05 16:35:36.67+00
(4 rows)

Note the top two are not in order (cuz you didnt 'order by create_date')

select create_date from article_lead where create_date >= '2007-11-03
17:00:00.0' and create_date <='2007-11-04 16:00:00.0';
create_date
---------------------------
2007-11-04 04:35:36.09+00

This one is correct, it is the second row. And the first row should not
be in because its > 16:00.

The db looks correct to me.

-Andy

#4Nick Johnson
ctfdy@spatula.net
In reply to: Tom Lane (#2)
Re: strange timezone problem

On Wed, 7 Nov 2007, Tom Lane wrote:

Nick Johnson <ctfdy@spatula.net> writes:

I'm using PostgreSQL 8.2.3 and seeing this behaviour with timezones:

[snip]

Shouldn't that second row have been in the results of the second query?

Huh? Those results look perfectly sane to me.

Ah, you're right of course. Just a complete mental lapse on my part (thus
the need of a 'sanity' check).

That's correct ... as of last year, DST extends through the first Sunday
in November in the USA.

Twice in one morning the database was cleverer than me.

Nick