您只需要转换为最新即可。但是,在执行此操作时要小心。沿排他(默认上限)应使用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;