2017-02-09 3 views
1

я должен сравнить две даты, чтобы получить последние 10 мин записи из базы данных, я использую PostgreSQL,Как сравнить даты с одной временной зоны и один без временной зоны

У меня есть написать этот запрос

x_time - это временная метка без часового пояса, поэтому я конвертирую другую в то же самое, но она не даст результата.

Запрос должен быть записан за последние 1 мин. Записей, но я думаю, что из-за часового пояса он не дает результата.

Как я могу решить проблему?

+0

показать нам 'выбрать макс (x_time), NOW() :: TIMESTAMP без временной зоны из x_table'? .. –

+0

это даст следующий результат«2017-02-09 14:41 : 11.828966 ',' 2017-02-09 05: 46: 55.253082 ' –

+0

, то я полагаю, вы не должны неявно конвертировать now() - просто используйте 'select * FROM x_table WHERE x_time> = (NOW() - интервал '10 минут'); ' –

ответ

1

Если x_time - это метка времени без часового пояса, вы должны указать правильный часовой пояс для функции NOW().

Попробуйте

select *FROM x_table WHERE x_time >= (NOW() at time zone '-04' - interval '10 minutes') 
+0

Спасибо за помощь, но это не работает –

+0

Прошу прощения. Как насчет '(NOW() в часовом поясе '-04' - интервал '10 минут ')'? Сейчас почти 15:00, и я вижу, что ваш максимум (t_time) был 14:41 несколько минут назад. – barbsan

+0

Это работает спасибо за помощь barbsan –

Смежные вопросы