Ответ 1
WHERE workorder.createdtime > current_date - 1 -- Yesterday and today
WHERE workorder.createdtime > current_timestamp - interval '1 day' -- last 24hr
У меня есть приложение, в котором я использовал MySQL. У меня был отчет, который показывал последние 24 часа. Я использовал запрос:
WHERE (DATE_SUB(CURDATE(), INTERVAL 1 DAY) <= FROM_UNIXTIME(`workorder`.`CREATEDTIME` / 1000))
Теперь я должен использовать PostgreSQL и не знаю, как сделать отчет за последние 24 часа. Может ли кто-нибудь из вас помочь?
WHERE workorder.createdtime > current_date - 1 -- Yesterday and today
WHERE workorder.createdtime > current_timestamp - interval '1 day' -- last 24hr
> TIMESTAMP 'yesterday'
Для удобства Postgres включает в себя несколько жестко закодированных значений в качестве специальных входов даты/времени. К ним относятся:
yesterday
today
tomorrow
now
Попробуйте SELECT TIMESTAMP 'now'
.
Например, вот запрос.
SELECT when_row_created_
FROM customer_
WHERE when_row_created_ > TIMESTAMP 'yesterday'
ORDER BY when_row_created_ DESC
;
Эти команды могут не соответствовать производственному коду, но они, безусловно, удобны в разработке. Прочтите документы и выполните некоторую практику, чтобы убедиться, что вы понимаете поведение этих команд, как влияет на них временной диапазон сеансов и т.д.
Недостатки включают (a) неявное игнорирование ключевой проблемы часового пояса и (b) не стандартный SQL.
where workorder.createdtime >= now() - interval '24 hour'