您只需要转换为最新即可。但是,在执行此操作时要小心。沿排他(默认上限)应使用7的倍数。因此,它看起来像:
with date_ranges (range_name, range_dates) as ( values ('week_0', tstzrange ((now()::date-interval '7 days'), now()::date)), ('week_1', tstzrange ((now()::date-interval '14 days'), (now()::date-interval '7 days'))), ('week_2', tstzrange ((now()::date-interval '21 days'), (now()::date-interval '14 days'))), ('week_3', tstzrange ((now()::date-interval '28 days'), (now()::date-interval '21 days'))) ) select range_name, range_dates, sum("transactionTotal") total_amount from "MoneyTransactions" mt join date_ranges dr on (mt."createdAt" <@ range_dates) group by range_name, range_dates order by range_name;


