📅  最后修改于: 2023-12-03 15:33:19.519000             🧑  作者: Mango
在 Oracle 数据库中,如果需要列出没有周末的日期,可以使用以下 SQL 语句:
SELECT *
FROM (
SELECT TRUNC(SYSDATE + LEVEL - 1) dt
FROM dual
CONNECT BY LEVEL <= 365
)
WHERE TO_CHAR(dt, 'D') NOT IN (6, 7)
ORDER BY dt;
该 SQL 语句使用了 dual
表和 connect by level
语句生成 365 天的日期,然后通过 TO_CHAR
函数获取每个日期的星期几,并过滤掉星期六和星期天,最终按日期排序并返回查询结果。
需要注意的是,该 SQL 语句仅适用于未考虑假日和国家法定节假日的情况。如果需要考虑这些因素,请使用更为复杂的算法。