오라클.. 날짜 계산 하기.. 0 7 5,182

by 임핑구 [Oracle 기초] [2015.09.07 10:17:20]


1.png (8,368Bytes)

기간 근무일수 공휴일
today 1 -
month 27 3
year 100 20

 

 

이런테이블을 만들려고 합니다

공휴일 데이트는 별도 테이블에 존재 하구..

 

 

sysdate - (to_char(sysdate,'yyyy')||'0101' )

연초 1월1월을 이런식으로 해서

sysdate 에서 빼주고 이런식으로 밖에 할수 없는건지.. 오라클 함수 중에 날짜 계산해주는 방법이 있는건지..

 

궁급합니다.

 

궁금합니당 ~!

 

 

 

 

공휴일 갯수는 ㅜㅜ 또 어떻게 빼야 할지..

by 아발란체 [2015.09.07 10:30:08]

근데... d-day를 구하고 싶다고 말씀하신 것인지, 테이블 보면 또 아닌 것 같고.. ㅠㅠ 난독증이..

일단 d-day는 사용하신 방법도 괜찮아 보이는데용.. ㅋㅋ 다른 방법으로는..

SELECT TRUNC(SYSDATE, 'DD') - TO_DATE('2015-01-01','YYYY-MM-DD') FROM DUAL;

 


by 임핑구 [2015.09.07 10:50:43]

오늘을 기점으로 

한달동안에 며칠 근무를 했고 그중에 공휴일은 며칠이며

1년단위로 보면 총 며칠 근무를 했고.. 공휴일은 며칠이 있다는 계산을 하는거에용^^;

저도 사실 기획안 보고 좀 당황하는중입니다 ㅜㅜ

 

대충 저의 의견(?)은...

오늘이 9월7일 이니까 근무일수는 7일이고.. 그중에 공휴일은 2일 있엇구

1년단위로 보면 2015년1월1일부터 오늘까지 .. 250일 정도 되었고 그중에 공휴일은 며칠 있었다 라고 계산을 해줘야 하는것 같아요 ㅠㅠ


by 창조의날개 [2015.09.07 10:50:17]

SELECT TO_CHAR(SYSDATE,'DDD') FROM DUAL;

 


by 임핑구 [2015.09.07 10:51:35]

2015년 1월1일 기준으로 날을 구하는거네요! 감사합니다 ㅜㅜ 간단해졋네요 요건..


by jkson [2015.09.07 11:27:36]

공휴일은 관리하는 테이블 따로 있을 거 같은데.. 없으면 만들어서 공휴일 카운트해서 빼면 쉬울 것 같네요.


by 마농 [2015.09.07 13:24:51]
SELECT a.gb
     , COUNT(*) tot_cnt
     , COUNT(*) - COUNT(h.dt) wk_cnt
     , COUNT(h.dt) hu_cnt
  FROM (SELECT 1 no
             , 'Today' gb
             , TO_CHAR(sysdate, 'yyyymmdd') dt
          FROM dual
         UNION ALL
        SELECT 2 no
             , 'Month' gb
             , TO_CHAR(TRUNC(sysdate, 'mm') + LEVEL - 1, 'yyyymmdd') dt
          FROM dual
         CONNECT BY LEVEL <= TRUNC(sysdate, 'dd') - TRUNC(sysdate, 'mm') + 1
         UNION ALL
        SELECT 3 no
             , 'Year' gb
             , TO_CHAR(TRUNC(sysdate, 'yy') + LEVEL - 1, 'yyyymmdd') dt
          FROM dual
         CONNECT BY LEVEL <= TRUNC(sysdate, 'dd') - TRUNC(sysdate, 'yy') + 1
        ) a
     , 공휴일 h
 WHERE a.dt = h.dt(+)
 GROUP BY a.no, a.gb
 ORDER BY a.no
;

 


by 임핑구 [2015.09.08 09:52:04]

제 월급이라도 드려야 할까봐요.. 감사합니다 완벽 쿼리문 이네요 ㅠㅠ

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입