首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按周过滤查询

按周过滤查询
EN

Stack Overflow用户
提问于 2020-01-19 23:32:27
回答 3查看 1.2K关注 0票数 1

如何在Postgresql中查询(SELECT),使日期不同的列的结果在当前周的周日到周六之间。

查询伪例:

代码语言:javascript
运行
复制
SELECT * FROM table WHERE datecolumn BETWEEN CURRENT WEEK

在另一个查询中,我得到了一年中的第几周。如何选择这些日期,并在WHERE子句中应用特定年份中的特定周数。

查询伪例:

代码语言:javascript
运行
复制
SELECT * FROM table WHERE datecolumn BETWEEN WEEK15 FROM year 2020
EN

Stack Overflow用户

发布于 2020-01-19 23:59:10

我会使用date_trunc(),但就像这样。对于当前一周:

代码语言:javascript
运行
复制
where datecolumn >= date_trunc('week', now()) and
      datecolumn < date_trunc('week', now()) + interval '1 week'

对于一年中的第n周,这就更棘手了。我认为这就是你想要的:

代码语言:javascript
运行
复制
where datecolumn >= (date_trunc('week', now()) -
                     (extract(week from now()) - 1) * interval '1 week' +
                     <n> * interval '1 week'
                    ) and
      datecolumn < (date_trunc('week', now()) -
                     (extract(week from now()) - 1) * interval '1 week' +
                     (<n> + 1) * interval '1 week'
                    )

这两种方法都是结构化的,因此计算不在列上,因此它们与使用索引兼容。

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59811558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档