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 41654 게시물 읽기
No. 41654
주차 구하는 방법 문의
작성자
이민우
작성일
2018-11-13 10:38
조회수
1,866

주차관련하여 문의 드립니다.

특정 기간동안의 날짜를 FROM~TO 입력받아 날짜별 해당하는 년도,월,주차를 구하려고 합니다.

주차의 시작을 토요일로 하고, 두개의 월에 주차가 겹쳐 있는경우 수요일 기준으로 소속월을 정하려고 합니다.

도움 부탁드립니다.

 

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

기준이 통상적이지 않네요?
보통 다음 두가지 기준을 사용할 텐데요?
아래 (괄호) 표시는 월이 나뉘는 기준입니다.
1. 월화수(목)금토일
2. 일월화(수)목금토
그런데 제시하신 기준이 맞는건가요?
주의 정 가운데 요일이 기준이 아니네요?
3. 토일월화(수)목금

마농(manon94)님이 2018-11-13 12:32에 작성한 댓글입니다.

마농님 제가 잘못 파악했습니다.

월화수(목)금토일 가 맞습니다.

특정 날짜가 속하는 년/월/주차 를 알아내려고 합니다.

감사합니다.

이민우님이 2018-11-13 13:11에 작성한 댓글입니다.
이 댓글은 2018-11-13 13:15에 마지막으로 수정되었습니다. Edit

WITH t AS
(
SELECT sdt + LEVEL - 1 dt
  FROM (SELECT TO_DATE('20181001', 'yyyymmdd') sdt
             , TO_DATE('20181231', 'yyyymmdd') edt
          FROM dual)
 CONNECT BY LEVEL <= edt - sdt + 1
)
SELECT dt
     , w_sdt
     , w_edt
     , TO_CHAR(m_sdt, 'yyyymm') ym    -- 년월
     , (w_mdt - m_sdt) / 7 + 1  w     -- 주차
  FROM (SELECT dt
             , TRUNC(dt, 'iw')     w_sdt    -- 주 시작일
             , TRUNC(dt, 'iw') + 6 w_edt    -- 주 종료일
             , TRUNC(dt, 'iw') + 3 w_mdt    -- 주 목요일
             , NEXT_DAY(TRUNC(TRUNC(dt, 'iw') + 3, 'mm') - 1, 5) m_sdt
                                                     -- 월 첫번째 목요일
          FROM t
        )
;

마농(manon94)님이 2018-11-13 13:27에 작성한 댓글입니다.
이 댓글은 2018-11-13 13:48에 마지막으로 수정되었습니다.

마농님 감사합니다.

많은 도움 되었습니다.

이민우님이 2018-11-13 13:34에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
41658누적의 차이를 구할방법 [2]
궁금이
2018-11-20
3523
41656인덱스 관련해서 질문 드립니다. [2]
권기혁
2018-11-14
1660
41655오라클 쿼리 질문있습니다 [1]
JKK
2018-11-14
1776
41654주차 구하는 방법 문의 [4]
이민우
2018-11-13
1866
41653문자 치환에 대해서 질문 드립니다. [6]
그림자가면
2018-11-09
1923
41652합계 구하는 쿼리 질문 입니다. [2]
구휘
2018-11-08
2137
41651데이터베이스 일대일 관계 릴레이션 변환 질문합니다. [1]
SYJ
2018-11-04
1747
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2021 DSN, All rights reserved.
작업시간: 0.035초, 이곳 서비스는
	PostgreSQL v13.3으로 자료를 관리합니다