如何在Postgresql中查询(SELECT),使日期不同的列的结果在当前周的周日到周六之间。
查询伪例:
SELECT * FROM table WHERE datecolumn BETWEEN CURRENT WEEK
在另一个查询中,我得到了一年中的第几周。如何选择这些日期,并在WHERE子句中应用特定年份中的特定周数。
查询伪例:
SELECT * FROM table WHERE datecolumn BETWEEN WEEK15 FROM year 2020
发布于 2020-01-19 23:59:10
我会使用date_trunc()
,但就像这样。对于当前一周:
where datecolumn >= date_trunc('week', now()) and
datecolumn < date_trunc('week', now()) + interval '1 week'
对于一年中的第n周,这就更棘手了。我认为这就是你想要的:
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'
)
这两种方法都是结构化的,因此计算不在列上,因此它们与使用索引兼容。
https://stackoverflow.com/questions/59811558
复制相似问题