Подтвердить что ты не робот

Группировка временных меток днем, а не по времени

У меня есть таблица, в которой хранятся журналы доступа пользователя/просмотра для выполняемого веб-сервиса. Он отслеживает время как временную метку, хотя я нахожу, когда я делаю сводную отчетность, мне нужен только день, а не время.

В настоящее время выполняется следующий запрос:

SELECT user_logs.timestamp
    FROM user_logs
        WHERE user_logs.timestamp >= %(timestamp_1)s
            AND user_logs.timestamp <= %(timestamp_2)s
                ORDER BY user_logs.timestamp

Часто существуют другие условия, но они не должны иметь значения для вопроса. Я использую Postgres, но я предполагаю, что любая функция будет использоваться на других языках.

Я вытаскиваю результаты в Python script, который подсчитывает количество просмотров за дату, но для меня было бы гораздо больше смысла, если бы база данных могла группироваться и рассчитывать на меня.

Как это сделать, чтобы он группировался по дням и игнорировал время?

4b9b3361

Ответ 1

SELECT date_trunc('day', user_logs.timestamp) "day", count(*) views
FROM user_logs
WHERE user_logs.timestamp >= %(timestamp_1)s
    AND user_logs.timestamp <= %(timestamp_2)s
group by 1
ORDER BY 1