Ответ 1
Что не так с:
SELECT a,b,c
FROM table
WHERE xtime BETWEEN '2012-04-01 23:55:00'::timestamp
AND now()::timestamp;
Если вы хотите работать с счетчиком секунд interval
:
...
WHERE xtime BETWEEN now()::timestamp - (interval '1s') * $selectedtimeParm
AND now()::timestamp;
Обратите внимание, как я использовал стандартный формат даты ISO 8601 YYYY-MM-DD h24:mi:ss
, который однозначен с любым языковым стандартом или настройкой DateStyle
.
Также обратите внимание, что первое значение для конструкции BETWEEN
должно быть меньшим. Если вы не знаете, какое значение меньше, используйте BETWEEN SYMMETRIC
.
В своем вопросе вы ссылаетесь на тип datetime timestamp
как "date", "time" и "period". В заголовке вы использовали термин "временные рамки", который я изменил на "временные метки". Все эти термины неверны. Свободный обмен ими усложняет понимание вопроса.
Это и тот факт, что вы отметили только вопрос psql
(проблема едва ли связана с терминалом командной строки), может помочь объяснить, почему никто не отвечал в течение нескольких дней. Обычно, это несколько минут здесь. Мне было трудно понять твой вопрос, мне пришлось прочитать его пару раз.
Вам необходимо понимать типы данных date
, interval
, time
и timestamp
- с часовым поясом или без него. Начните с прочтения главы "Типы даты/времени" в руководстве.
Сообщение об ошибке тоже прошло бы долгий путь.