2016-05-16 4 views
-1

Мне нужна помощь с отметками времени с postgresql. У меня есть столбец временной метки с часовым поясом с именем download_at, когда пользователь загрузил приложение и столбец user_id, который является целым числом. Я пытаюсь извлечь идентификаторы пользователей пользователей, которые загрузились за последние 168 часов с последних 60 дней информации. Я немного смущен тем, как я могу подойти к этому и почувствовал застревание из-за двух разных времен. Я считаю, что мне, возможно, придется поиграть с функцией trunc, но немного застрял.Запрос временной отметки к часам

+0

Можете уточнить, что вы подразумеваете под 'из последних 60 дней информации? Было бы полезно использовать некоторые типовые структуры данных. –

+0

Хм, это просто говорит о получении информации за последние 60 дней пользователей с приложением в течение 168 часов после загрузки. – Richard

ответ

0

Основной пример:

SELECT * 
FROM table1 
WHERE download_at > now() - '186 hours'::interval 

Postgres является феноменальный при обработке даты и времени. Разбивка, что это делает:

now() --function that returns the current time as a datetime object 

'186 hours'::interval --a string cast to an interval 

В Postgres :: делает литье. При переходе на интервал Postgres превратит отформатированный английский в объект интервала. Поскольку вы можете вычесть объекты datetime и interval, он сделает все остальное за вас.

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