回答

收藏

如何与postgres约会

技术问答 技术问答 224 人阅读 | 0 人回复 | 2023-09-12

我试图查询并返回过去四个星期中所有记录的总和。我使用了时间戳,但是可以使用。我正在尝试更改精度,并仅使用日期。# f0 M; a7 L+ C) X0 h
简短地代替时间戳范围,我只需要日期范围。) P) m0 y7 m4 G' j- y7 f" ~4 f1 y
这就是我在时间戳记上的意思。
9 S9 j( v7 v$ A2 ~. ~with date_ranges (range_name, range_dates) as
- G8 w+ L3 }9 M4 Z3 A! p              ( values ('week_0', tstzrange ((now()-interval '6 days'),  now(),'[]')): L; G/ }4 G1 S
                      , ('week_1', tstzrange ((now()-interval '13 days'), (now()-interval '7 days'), '[]'))
! F) ]+ \" Z2 E* E                      , ('week_2', tstzrange ((now()-interval '20 days'), (now()-interval '14 days'),'[]'))
1 o. w/ j; u% c( G                      , ('week_3', tstzrange ((now()-interval '27 days'), (now()-interval '21 days'),'[]')) 7 ~4 J* B+ `6 o9 N* E1 U, q
              )
9 i* [) n. Y! a2 h0 E: l% E  select range_name, range_dates, sum("transactionTotal") total_amount
& k' b8 ]4 X. \. A  from "MoneyTransactions" mt
1 A8 d' k# L2 Q$ T, T  join date_ranges dr on (mt."createdAt" 我尝试更改tstzrange,daterange但出现以下错误
* M/ d! e* V% i9 {) p% u2 D
! ]" ~% G2 c: l函数daterange(带时区的时间戳,带时区的时间戳,未知)不存在
/ l  n% }( t& [/ c- p

# R) g) \& t- J/ r; D7 f我对SQL的了解不多,所以对它的解释不多。
/ ?/ h0 U9 Q) U  D) Z               
/ f  _6 j( }  E8 X解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则