我有一个查询返回 01/01/2011 和 12/31/2041 之间的所有日期(不包括周六和周日)。它工作正常,但是当我尝试将过滤器“TRIM(TO_CHAR(dt,'DAY'))不在('SATURDAY','SUNDAY')”中时,它只返回一行。有什么建议么?请记住,我是 PostgreSQL 的新手。
WITH RECURSIVE bd(dt,rn) AS
(
SELECT
TO_DATE('01/01/2011', 'MM/DD/YYYY') AS dt,
1 AS rn
UNION
SELECT
dt + 1, rn + 1
FROM
bd
WHERE
dt BETWEEN TO_DATE('01/01/2011', 'MM/DD/YYYY') AND TO_DATE('12/31/2041', 'MM/DD/YYYY') - 1
)
SELECT
dt, rn
FROM
bd
WHERE TRIM(TO_CHAR(dt, 'DAY')) NOT IN ('SATURDAY', 'SUNDAY')