按日而不是按时间对时间戳进行分组

我有一个存储我运行的 webservice 的用户访问/查看日志的表。它跟踪时间作为一个时间戳,虽然我发现当我做汇总报告时,我只关心当天,而不是时间。

我正在运行以下查询:

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 脚本,该脚本计算每个日期的浏览次数,但如果数据库可以为我分组和计数,那么对我来说更有意义。

我怎么把它拆开,让它按天分组,而忽略时间呢?

75805 次浏览
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