我正在尝试使用Django的查询对象编写以下查询:
@EventListener(ApplicationreadyEvent.class)
public void initIndicesAfterStartup() {
IndexOperations indexOps = mongoTemplate.indexOps(DomainType.class);
IndexResolver resolver = new MongoPersistentEntityIndexResolver(mongoMappingContext);
resolver.resolveIndexFor(DomainType.class).forEach(indexOps::ensureIndex);
}
这是我想出的:
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'),)
这不是有效的查询。 Postgres出现此错误:
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
但是它非常正确,只不过它在HINT: No function matches the given name and argument types. You might need to add explicit type casts.
函数调用后附加了额外的AT TIME ZONE 'America/Los_Angeles'
。如何更改查询,使其不具有该时区规范?