gpt4 book ai didi

sql - 在 Oracle SQL 中的日期之前

转载 作者:行者123 更新时间:2023-12-04 04:58:14 25 4
gpt4 key购买 nike

给出一个日期,例如(2013 年 5 月 11 日,即星期六)。我必须在此日期之前找到 7 个工作日(周一至周五)。那是 2013 年 5 月 3 日,即星期五。我知道如何找出两个日期之间的工作日。作者:-

SELECT from_date- todate - ((
TRUNC (NEXT_DAY (from_date, 'SAT') - NEXT_DAY (todate - 1, 'SAT')) / 7) + (
TRUNC (NEXT_DAY (from_date, 'SUN') - NEXT_DAY (todate - 1, 'SUN')) / 7)) + 1
FROM dual;

但是现在我只有一个给定的日期,并且必须找到这一天之前的第 7 天(根据工作日!)

最佳答案

SELECT * FROM
(
SELECT (trunc(SYSDATE)-2) start_dt -- May 11 --
, (trunc(SYSDATE)-2)-LEVEL bus_days -- All bus days before May 11 --
, to_char((trunc(SYSDATE)-2)-LEVEL, 'DY') wk_day
FROM DUAL
CONNECT BY LEVEL <= (trunc(SYSDATE)-2)-((trunc(SYSDATE)-2) - 7) -- May 11-7 days ago=May 4
)
WHERE wk_day NOT IN ('SAT', 'SUN')
ORDER BY bus_days
/

START_DT BUS_DAYS WK_DAY
--------------------------------
5/11/2013 5/6/2013 MON
5/11/2013 5/7/2013 TUE
5/11/2013 5/8/2013 WED
5/11/2013 5/9/2013 THU
5/11/2013 5/10/2013 FRI

关于sql - 在 Oracle SQL 中的日期之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16487813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com