时间段为 17点到次日的01:30 分使用pgsql
时间: 2024-04-10 18:27:43 浏览: 105
读书笔记:同步mysql到pgsql(高性能迁移服务).zip
在 PostgreSQL 中,你可以使用以下查询来统计从上月21号到本月20号,每天的17点到次日的01:30分的数据:
```sql
SELECT *
FROM your_table
WHERE your_date_column >= date_trunc('month', current_date - interval '1 month') + interval '20 days'
AND your_date_column <= date_trunc('month', current_date) + interval '19 days'
AND extract(hour from your_time_column) >= 17
AND (extract(hour from your_time_column) < 1
OR (extract(hour from your_time_column) = 1 AND extract(minute from your_time_column) <= 30));
```
请注意,上述查询中的 `your_table` 是你要查询的表名,`your_date_column` 是包含日期的列名,`your_time_column` 是包含时间的列名。你需要将它们替换为你实际使用的表名和列名。
该查询使用了 `date_trunc` 函数来获取上月21号和本月20号的日期范围。通过将当前日期减去一个月并取月份的开始,然后加上20天和19天,我们得到了上月21号和本月20号的起始和结束日期。
接下来,我们使用 `extract` 函数来提取时间列中的小时和分钟,并与17点和01:30分进行比较。条件部分 `(extract(hour from your_time_column) < 1 OR (extract(hour from your_time_column) = 1 AND extract(minute from your_time_column) <= 30))` 确保了时间在17点到次日01:30分之间。
请根据你的实际情况做出相应的调整,例如修改表名和列名。
阅读全文