Re: Select gives the wrong results

Поиск
Список
Период
Сортировка
От Stephan Szabo
Тема Re: Select gives the wrong results
Дата
Msg-id 20050829144845.S4750@megazone.bigpanda.com
обсуждение исходный текст
Ответ на Select gives the wrong results  (Crystle Numan <crys@guidedvision.com>)
Список pgsql-general
On Mon, 29 Aug 2005, Crystle Numan wrote:

> I am fairly knowledgeable about PostgreSQL but this behaviour is
> stumping me. Any help would be wonderful. If you think it is a bug, let
> me now and I'll file one.
>
> (select values in DB (date stamps) between Jan 1, 2000 and Jan 1, 2005,
> no results)
>
> db_name=# SELECT * from person_detail WHERE field='2' AND
> value>'946702800' AND value<'1104555600';
>
>  id | person | field | value
> ----+--------+-------+-------
> (0 rows)
>
> (select values in DB (date stamps) between Jan 1, 2003 and Jan 1, 2005, 4
> results (!))
>
> db_name=# SELECT * from person_detail WHERE field='2' AND
> value>'1041397200' AND value<'1104555600';
>   id  | person | field |   value
> ------+--------+-------+------------
>  1187 |    454 |     2 | 1051156800
>  1188 |    460 |     2 | 1053316800
>  1219 |    472 |     2 | 1057723200
>  1181 |    441 |     2 | 1042520400
> (4 rows)
>
> The first select should have those 4 results plus any more. We tried
> putting quotes (") around the word 'value' to see if that made a
> difference, and no it didn't. We tried reversing the two clauses and
> that made no difference.
>
> Here's another funny one. Not the one that doesn't belong.
>
> db_name=# SELECT * from person_detail WHERE field='2' AND
> value>='1000000001' AND value<='1104555600';
>   id  | person | field |   value
> ------+--------+-------+------------
>     3 |    218 |     2 | 1017464400
>   253 |    295 |     2 | 1002340800
>   514 |    323 |     2 | 100155600
>  1126 |    405 |     2 | 1006750800
>  1179 |    439 |     2 | 1035172800
>  1187 |    454 |     2 | 1051156800
>  1188 |    460 |     2 | 1053316800
>  1219 |    472 |     2 | 1057723200
>  1181 |    441 |     2 | 1042520400
>  1152 |    434 |     2 | 1032321600
>  1129 |    410 |     2 | 1024027200
> (11 rows)
>
> Anyone see what's going on here?

What type is value?  I think you're expecting a numeric comparison but
getting a string one.

В списке pgsql-general по дате отправления:

Предыдущее
От: Martijn van Oosterhout
Дата:
Сообщение: Re: Select gives the wrong results
Следующее
От: Moises Alberto Lindo Gutarra
Дата:
Сообщение: Re: Select gives the wrong results