查询一段时间内的所有小时数,例如2023006-08 01,2023006-08 02
时间: 2024-03-20 13:39:03 浏览: 20
您可以使用 PostgreSQL 中的 generate_series 函数生成指定时间范围内的所有小时数。以下是一个示例查询:
```
SELECT
generate_series AS hour_start,
generate_series + interval '1 hour' AS hour_end
FROM
generate_series(
'2023-06-08 01:00:00',
'2023-06-08 02:00:00',
interval '1 hour'
)
AS generate_series;
```
这个查询将生成从 2023 年 6 月 8 日 1 点到 2 点之间的所有小时数,每个小时的起始时间和结束时间都会被列出。
如果您需要在查询中使用这些时间数据,可以将其包装在子查询中,如下所示:
```
SELECT
hour_start,
hour_end,
COUNT(*)
FROM (
SELECT
generate_series AS hour_start,
generate_series + interval '1 hour' AS hour_end
FROM
generate_series(
'2023-06-08 01:00:00',
'2023-06-08 02:00:00',
interval '1 hour'
)
AS generate_series
)
AS hours
JOIN your_table
ON your_table.timestamp >= hours.hour_start
AND your_table.timestamp < hours.hour_end
GROUP BY hour_start, hour_end;
```
这个查询将计算每个小时内记录的数量,并将结果按小时分组。请注意,您需要将 "your_table" 替换为包含您的时间戳列的表的名称。