BUG #3252: Select Order by time

Started by Lee Chuaalmost 19 years ago4 messagesbugs
Jump to latest
#1Lee Chua
leehchua@bensecurity.com.au

The following bug has been logged online:

Bug reference: 3252
Logged by: Lee Chua
Email address: leehchua@bensecurity.com.au
PostgreSQL version: 8.2.3
Operating system: FC4
Description: Select Order by time
Details:

When we select and order by time we get 00:00:00 as the latest time of the
day.

The latest time of the day should be 23:59:59 not 00:00:00. 00:00:00 should
be the earliest time of the day. This follows naval/military convention
somewhat although the time 00:00:00 actually does not exist in the
military/naval definition and in fact is called Midnight. The only
convention then that we should follow is the computer where we start
counting from 0; so 00:00:00 should be the epoch of the day. It also makes
numerical order sense.

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Lee Chua (#1)
Re: BUG #3252: Select Order by time

"Lee Chua" <leehchua@bensecurity.com.au> writes:

When we select and order by time we get 00:00:00 as the latest time of the
day.

Really? It works as expected for me:

regression=# create table foo(f1 time);
CREATE TABLE
regression=# insert into foo values ('1:00:00'),('2:00:00'),('0:00:00'),
regression-# ('23:00:00'), ('23:59:59');
INSERT 0 5
regression=# select * from foo order by f1;
f1
----------
00:00:00
01:00:00
02:00:00
23:00:00
23:59:59
(5 rows)

regression=

Please provide a reproducible test case.

regards, tom lane

#3Kevin Grittner
Kevin.Grittner@wicourts.gov
In reply to: Tom Lane (#2)
Re: BUG #3252: Select Order by time

On Wed, Apr 25, 2007 at 12:42 AM, in message <14184.1177479755@sss.pgh.pa.us>,

Tom Lane <tgl@sss.pgh.pa.us> wrote:

"Lee Chua" <leehchua@bensecurity.com.au> writes:

When we select and order by time we get 00:00:00 as the latest time of the
day.

Really? It works as expected for me:

regression=# create table foo(f1 time);
CREATE TABLE
regression=# insert into foo values ('1:00:00'),('2:00:00'),('0:00:00'),
regression- # ('23:00:00'), ('23:59:59');
INSERT 0 5
regression=# select * from foo order by f1;
f1
----------
00:00:00
01:00:00
02:00:00
23:00:00
23:59:59
(5 rows)

I just wanted to point out that midnight is supported at both ends -- the start of the day as 00:00:00, and the end of the day as 24:00:00. Perhaps the application software is not distinguishing these?

Modifying Tom's example to insert one more row, you will see:

f1
----------
00:00:00
01:00:00
02:00:00
23:00:00
23:25:59
24:00:00
(6 rows)

I know there are some who require this behavior. (I had to add it to a database product years ago when it was used to develop an application for fire departments.)

-Kevin

#4Lee Chua
leehchua@bensecurity.com.au
In reply to: Kevin Grittner (#3)
Re: BUG #3252: Select Order by time

Hi Kevin,

Thanks for the response. I am a little embarrassed and I was in fact hoping
that my stupid Report would just dissolve away in the abyss. In your
responding I am of course quite bowled over that - Hey there are people
genuinely out there - unlike reports one may send to mickeysoft who are
probably paid handsomely.

You are of course right. I do not know what I was seeing - might have been
something to do with it being about 3:00am my time.

Interesting that 24:00 is accepted by Postgres. Didn't know that.

Again, Thank you for the effort you have expended to look into my (really
stupid) bug report.

Regards

Lee

Lee Chua

-----Original Message-----
From: Kevin Grittner [mailto:Kevin.Grittner@wicourts.gov]
Sent: Thursday, 26 April 2007 6:15 AM
To: Lee Chua; Tom Lane
Cc: pgsql-bugs@postgresql.org
Subject: Re: [BUGS] BUG #3252: Select Order by time

On Wed, Apr 25, 2007 at 12:42 AM, in message

<14184.1177479755@sss.pgh.pa.us>,

Tom Lane <tgl@sss.pgh.pa.us> wrote:

"Lee Chua" <leehchua@bensecurity.com.au> writes:

When we select and order by time we get 00:00:00 as the latest time of

the

day.

Really? It works as expected for me:

regression=# create table foo(f1 time);

CREATE TABLE

regression=# insert into foo values ('1:00:00'),('2:00:00'),('0:00:00'),

regression- # ('23:00:00'), ('23:59:59');

INSERT 0 5

regression=# select * from foo order by f1;

f1

----------

00:00:00

01:00:00

02:00:00

23:00:00

23:59:59

(5 rows)

I just wanted to point out that midnight is supported at both ends -- the
start of the day as 00:00:00, and the end of the day as 24:00:00. Perhaps
the application software is not distinguishing these?

Modifying Tom's example to insert one more row, you will see:

f1

----------

00:00:00

01:00:00

02:00:00

23:00:00

23:25:59

24:00:00

(6 rows)

I know there are some who require this behavior. (I had to add it to a
database product years ago when it was used to develop an application for
fire departments.)

-Kevin