首页 > 解决方案 > Postgresql 我想根据今天(1 年的价值)从年、月和日数据中排除周末

问题描述

SELECT to_char(date_trunc('day', (current_date - days)), 'YYYY-MM-DD')
AS date 
FROM generate_series(0, 365, 1) 
AS days

结果

2021-11-12
2021-11-11
2021-11-10
2021-11-09
2021-11-08
2021-11-07 .....

2020-11-16
2020-11-15
2020-11-14
2020-11-13
2020-11-12 ..... end

如何从年度数据中排除周末数据?

标签: postgresql

解决方案


只需添加一个 WHERE 子句:

SELECT to_char(day, 'YYYY-MM-DD') AS date 
FROM generate_series(current_date - interval '1 year',
                     current_date, 
                     interval '1 day') AS g(day)
where extract(isodow from g.day) not in (6,7)

我使用了星期一 = 1、星期六 = 6 和星期日 = 7 的日期编号的 ISO 定义。

extract(dow ...)如果您喜欢星期天 = 0,您可以使用


推荐阅读