database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 38277 게시물 읽기
No. 38277
일수 계산
작성자
감사
작성일
2010-12-30 11:12
조회수
4,101

시작일자-종료일자 일수를 구하는 sql(단, 토/일요일 제외)

이 글에 대한 댓글이 총 2건 있습니다.

SELECT COUNT(*) CNT
  FROM (
        SELECT TO_DATE(:END_DT) - LEVEL DT
          FROM DUAL
          CONNECT BY LEVEL <= TO_DATE(:END_DT) - TO_DATE(:ST_DT)
        ) A
 WHERE TO_CHAR(A.DT, 'D') NOT IN ('1', '7')

초보님이 2010-12-30 11:27에 작성한 댓글입니다. Edit

1. 시작일 기준

SELECT COUNT(*) CNT
  FROM (
        SELECT TO_DATE(:STR_DT) + LEVEL - 1 DT
             , TO_CHAR(TO_DATE(:STR_DT) + LEVEL - 1, 'D') DNM
          FROM DUAL
          CONNECT BY LEVEL <= TO_DATE(:END_DT) - TO_DATE(:STR_DT) + 1
        ) A
 WHERE DNM NOT IN ('1', '7')
 

 

2. 종료일기준
SELECT COUNT(*) CNT
  FROM (
        SELECT TO_DATE(:END_DT) - LEVEL + 1 DT
             , TO_CHAR(TO_DATE(:END_DT) - LEVEL + 1, 'D') DNM
          FROM DUAL
          CONNECT BY LEVEL <= TO_DATE(:END_DT) - TO_DATE(:STR_DT) + 1
        ) A
 WHERE DNM NOT IN ('1', '7')

 

구간을 구해야 하기 때문에 반드시 종료일 - 시작일 + 1 의 형태가 되어야 합니다.

知音(sunnylee72)님이 2010-12-30 11:41에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
38280쿼리 중복건 내 집계 [2]
쿼리OTL
2010-12-30
3785
38279고수님들 도와주세요!! 쿼리로 될 수 있을까요?? [1]
MyEeMa
2010-12-30
3465
38278미사용 index 확인법? [1]
taiji
2010-12-30
3566
38277일수 계산 [2]
감사
2010-12-30
4101
38276[질문] 2개의 컬럼 데이터가 섞여 있는 테이블 조인 [3]
군쓰
2010-12-30
3011
38275쿼리질문입니다. [1]
초보.
2010-12-30
2795
38274index에 대한 문의 입니다. [1]
궁금이
2010-12-29
3059
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다