Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Calculate the number of days in two dates(sub SQL can't work)

nightingaleOct 23 2018 — edited Oct 24 2018

-- Get 5 Data

-- 2018/1/4

-- 2018/1/5

-- 2018/1/6

-- 2018/1/7

-- 2018/1/8

select to_date('2018/1/4', 'YYYY/MM/DD') + rownum -1 dt

  from dual

connect by level <= to_date('2018/1/8', 'YYYY/MM/DD') - to_date('2018/1/4', 'YYYY/MM/DD') + 1

--  Get 5 (Days)

select count(*)

from (

        select to_date('2018/1/4', 'YYYY/MM/DD') + rownum -1 dt

          from dual

       connect by level <= to_date('2018/1/8', 'YYYY/MM/DD') - to_date('2018/1/4', 'YYYY/MM/DD') + 1

)

-- Get 3 (Days)  1/4 ~ 1/8  ( remove 1/6 and 1/7 )

Finally, I hope to Excluding weekends and holidays in date !

SELECT count(*)

   FROM (

        select Days_List

          from (

                      select to_date('2018/1/4', 'YYYY/MM/DD') + rownum -1 AS Days_List

                        from dual

                   connect by level <= to_date('2018/1/8', 'YYYY/MM/DD') - to_date('2018/1/4', 'YYYY/MM/DD') + 1

                 )

          where Days_List not in (select HDay from National_Holiday_Table)

              )

I can't execute when I apply my SQL.

Will not recognize AA and BB in sub

I want to take a few days between the two dates I want to take.

How to solve this problem?

Oracle 11

*************************************************************

SELECT AA,

       BB,

       (select count(*)

          from (

                  select AA + rownum -1 dt

                    from dual

                 connect by level <= BB - AA + 1

               )

       )

  FROM (

         SELECT AcceptDate as AA,

                       ModifyDate as BB

           FROM MyTable

          WHERE CaseNo = '20181000001'

       )

Comments
Post Details
Added on Oct 23 2018
4 comments
347 views