我正在尝试使用Django的查询对象编写以下查询:
all_proposals2 = Proposal.objects.raw(
"select *, vote_score/extract('epoch' from age(created)) as display_rank from proposals_proposal")
这是我想出的:
all_proposals = Proposal.objects.annotate(
display_rank=F('vote_score') / Extract(Func(F('created'), function='AGE'), 'epoch'),
)
但是它生成此查询:
SELECT
"proposals_proposal"."id",
...
("proposals_proposal"."vote_score" /
EXTRACT('epoch' FROM AGE("proposals_proposal"."created") AT TIME ZONE 'America/Los_Angeles')) AS "display_rank"
FROM
"proposals_proposal"
ORDER BY
"proposals_proposal"."created" ASC
这不是有效的查询。 Postgres给出此错误:
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
但是非常正确,只不过它在AT TIME ZONE 'America/Los_Angeles'
函数调用后附加了额外的AGE()
。如何更改查询,使其不具有该时区规范?