gpt4 book ai didi

带有年份和周数的 Postgresql 日期范围查询

转载 作者:行者123 更新时间:2023-11-29 14:13:47 24 4
gpt4 key购买 nike

您好,我想将给定一周的工作小时数存储在一个表中, 小时、年、周

所以我可以快速汇总一周的小时数,其中周是 ISO 周数。

然后我想在这个表上做一个日期范围过滤查询,比方说

从 2018-12-24 到 2019-01-21(2018 年第 52 周到 2019 年第 4 周)。

如果用户传递年和周,那么我需要对复合索引进行范围检查,您首先比较年值,然后比较周数。

我应该如何构造查询和索引以高效地检索具有该范围的记录?

这是一个基本的尝试,给定了开始年份和开始周,以及结束年份和结束周:

select year, week, hours
from
weekly hours
where((year = 2018 and week >= 52) OR year > 2018) AND
((year = 2019 and week <=3) OR year < 2019)

最佳答案

您可以将多个列与 <= 进行比较或 >=运算符(operator):

select *
from weekly_hours
where (year, week) >= (2018,52)
and (year, week) <= (2019,3);

该查询可以在两列上使用索引,例如

create index on weekly_hours (year, week);

关于带有年份和周数的 Postgresql 日期范围查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56518938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com