#sql #postgresql
#sql #postgresql
Вопрос:
В настоящее время у меня есть база данных, в которой в created
качестве метки времени указана каждая созданная запись.
Я пытаюсь запросить все данные, которые были созданы после последнего полуденного времени (12:00).
Итак, давайте скажем, что данные
id1 | at 12.30 2nd Oct
id2 | at 21.00 2st Oct
id3 | at 12.10 1st Oct
И текущее время — 3 октября 11.59, я бы хотел, чтобы ответ на запрос был
id1 | at 12.30 2nd Oct
id2 | at 21.00 2st Oct
Но если данные
id1 | at 12.30 2nd Oct
id2 | at 21.00 2st Oct
id3 | at 12.10 3rd Oct
И текущее время — 3 октября 13.00, я бы хотел, чтобы ответ на запрос был
id3 | at 12.10 3rd Oct
Каким должен быть наилучший запрос? Я запускаю БД на postgresql.
Спасибо и оценил всю помощь.
Ответ №1:
Вы можете использовать арифметику даты:
where createdat >= (date_trunc('day', now())
(case when extract(hour) from now()) >= 12 then interval '12 hour' else interval '-12 hour' end)
)