postgresql Postgres分组依据日期(带小时偏移量)[已关闭]

ecbunoof  于 2023-06-05  发布在  PostgreSQL
关注(0)|答案(1)|浏览(285)

**关闭。**此题需要debugging details。目前不接受答复。

编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将帮助其他人回答这个问题。
4天前关闭。
Improve this question
当在postgres上使用group by条款时,是否可以使用一天中不同的开始和结束时间?由于商店的营业时间不同,因此要计算一天的销售额,商店将从上午10点营业到第二天凌晨3点。在这种情况下,group by子句应该将第二天的4 am到3:59:59视为一天,而不是00到23:59:59。
有一个现有的功能AT TIMEZONE by postgres,但是否可以在不使用AT TIMEZONE的情况下执行group by子句,因为它不是预期的用例?

xdyibdwo

xdyibdwo1#

一天从凌晨4点开始。而不是午夜,然后从时间中减去4小时:
简单数据:

CREATE TABLE sales (
  id int,
  sale_timestamp timestamp
);

insert into sales values
(1, '2023-01-01 04:00:15'), -- 2023-01-01
(2, '2023-01-01 04:00:15'), -- 2023-01-01
(3, '2023-01-02 02:00:00'), -- 2023-01-01 (since it is before 4am)
(4, '2023-01-02 04:15:15'), -- 2023-01-02
(5, '2023-01-02 04:15:15'); -- 2023-01-02

select (sale_timestamp - interval '1 hour' * 4)::date as sale_day, count(1)
from sales
group by sale_day

结果:
| 销售日|计数|
| - -----|- -----|
| 2023-01-01| 3|
| 2023-01-02 2023-01-02| 2|
Demo here

相关问题