Ordering problem with varchar (DESC)

From: Alexandre Leclerc <aleclerc(at)ipso(dot)ca>
To: pgsql-general(at)postgresql(dot)org
Subject: Ordering problem with varchar (DESC)
Date: 2007-01-31 15:46:17
Message-ID: 45C0B9C9.1010609@ipso.ca
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi all,

We have a column (varchar) that has plain text time and it is indexed.
When I do a query with the index, all the data is in the right order,
but when I user ORDER BY .. DESC, the order is messed up. Example:

By index 1: (date, time, data)
SELECT * from t1;
date (date type) time (varchar) data
2007-01-17 8h40 d1
2007-01-30 9h30 d2
2007-01-30 12h00 d3
2007-01-30 13h45 d4
2007-01-30 17h20 d5

SELECT * from t1 ORDER BY date, time DESC;
date (date type) time (varchar) data
2007-01-30 9h30 d2
2007-01-30 17h20 d5
2007-01-30 13h45 d4
2007-01-30 12h00 d3
2007-01-17 8h40 d1

I don't know why, this is like if the 'time' varchar was trimmed then
used for the ordering.

How can I fix that so that the result is exactly like the first one but
perfectly reversed in it's order?

Best regards.

--
Alexandre Leclerc

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2007-01-31 15:50:22 Re: sequence skips 30 values, how?
Previous Message Geoffrey 2007-01-31 15:18:09 Re: sequence skips 30 values, how?