Вы должны использовать "AM" или "PM" не "а", как 12-часовой спецификатора.
to_timestamp('2013-06-24 12:50:00 PM', 'yyyy-MM-dd hh:mi:ss am')
Работать с этим является простым процессом. Вы получаете неожиданное «ложное» из второго запроса. Таким образом, вы оцениваете каждую ветку по отдельности, чтобы увидеть, который один является ложным:
regress=> select
regress-> to_timestamp('2013-06-24 11:36:40 AM', 'yyyy-MM-dd hh:mi:ss a') >=
regress-> to_timestamp('2013-06-24 11:20:00 AM', 'yyyy-MM-dd hh:mi:ss a');
?column?
----------
t
(1 row)
regress=> select to_timestamp('2013-06-24 11:36:40 AM', 'yyyy-MM-dd hh:mi:ss a') <=
regress-> to_timestamp('2013-06-24 12:50:00 PM', 'yyyy-MM-dd hh:mi:ss a') as a;
a
---
f
(1 row)
ОК, так что это второй один, который неожиданно не соответствует. Метки времени выглядят как условия должны соответствовать, так что давайте посмотрим на выходе функции to_timestamp
на каждом:
regress=> select to_timestamp('2013-06-24 11:36:40 AM', 'yyyy-MM-dd hh:mi:ss a'),
to_timestamp('2013-06-24 12:50:00 PM', 'yyyy-MM-dd hh:mi:ss a');
to_timestamp | to_timestamp
------------------------+------------------------
2013-06-24 11:36:40+08 | 2013-06-24 00:50:00+08
(1 row)
Ха, вы посмотрите на это.12:50 превратился в 00:50
. Задержка в 12 часов предполагает, что PM
не распознается. Давайте посмотрим на the documentation:
AM, am, PM or pm
индикатор полудня (без периодов)
Похоже, что вы хотели am
или pm
, а не только a
, как вы писали в шаблоне времени вы использовали. Попробуем это с исправленным индикатором:
regress=> select to_timestamp('2013-06-24 12:50:00 PM', 'yyyy-MM-dd hh:mi:ss am');
to_timestamp
------------------------
2013-06-24 12:50:00+08
(1 row)
Это сделало. Верните его обратно в исходный запрос и ...
select
to_timestamp('2013-06-24 11:36:40 AM', 'yyyy-MM-dd hh:mi:ss am') >=
to_timestamp('2013-06-24 11:20:00 AM', 'yyyy-MM-dd hh:mi:ss am')
and
to_timestamp('2013-06-24 11:36:40 AM', 'yyyy-MM-dd hh:mi:ss am') <=
to_timestamp('2013-06-24 12:50:00 PM', 'yyyy-MM-dd hh:mi:ss am') as a
... возвращает true, как ожидалось. Итак, вы идете, это пошаговое решение проблем. 101.
«* пожалуйста, решите проблему *». Пожалуйста, предоставьте подробный вопрос, на который можно ответить, в соответствии с инструкциями, приведенными в новой помощи для пользователей здесь: http://stackoverflow.com/help и руководства по заданию более качественных вопросов PostgreSQL: http://stackoverflow.com/tags/postgresql/info. Что вы пытаетесь достичь? Какой результат вы ожидаете *? Что вы уже пробовали? –