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 41633 게시물 읽기
No. 41633
첫쨰주 토요일과 셋째주 토요일을 구하는 문제인데요 ..
작성자
이병훈
작성일
2018-09-12 21:43
조회수
3,695

SELECT DECODE(TO_CHAR(TRUNC(SYSDATE,'MONTH'),'D'),

7,TRUNC(SYSDATE,'MONTH'),

NEXT_DAY(TRUNC(SYSDATE,'MOMTH'),'토요일')

) first,

DECODE(TO_CHAR(TRUNC(SYSDATE,'MONTH'),'D'),

7,TRUNC(SYSDATE,'MONTH')+14,

NEXT_DAY(TRUNC(SYSDATE,'MOMTH'),'토요일')+14) third

FROM DUAL;

 

 

함수가 많아서 어디가 어디 괄호에 포함되는지를 잘 모르겠습니다.. ㅠㅠ 이 문제 좀 잘 설명해주실 분 계실까요??

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

 

TRUNC(SYSDATE,'MONTH')

-- 해당월 시작일 구하기(예 : 9월 1일)

 

TO_CHAR(TRUNC(SYSDATE,'MONTH'),'D')

-- 해당월 시직일 요일을 구하기... (1:일, 2:월, 3:화, 4:수, 5:목, 6:금, 7:토)

 

DECODE(TO_CHAR(TRUNC(SYSDATE,'MONTH'),'D'),7,TRUNC(SYSDATE,'MONTH'),NEXT_DAY(TRUNC(SYSDATE,'MOMTH'),'토요일'))

-- DECODE는 변환함수... TO_CHAR(TRUNC(SYSDATE,'MONTH'),'D') = 7 이면 토요일이면 TRUNC(SYSDATE,'MONTH') 해당일자를 보여주고, 아니면 NEXT_DAY(TRUNC(SYSDATE,'MONTH'),'토요일') --> 입력한 DATE 이후 날짜 중에서 찾고자 하는 요일의 첫 번째 일자를 반환

 

--> 아래는 14일을 더해서 가져온거구요...

 

NEXT_DAY(TRUNC(SYSDATE,'MOMTH'),'토요일') 오타가 있습니다.('MOMTH')

9월달은 시작날이 토요일이라 오류가 없지만.............

 

 

윤승환(felcon00)님이 2018-09-13 09:26에 작성한 댓글입니다.

첫째주, 셋째주 토요일은 논란의 여지가 있는 표현입니다.
 - 과연 9월1일 단 하루만 있는 주가 첫째주가 맞는가?
첫번째, 세번째 토요일이란 표현을 쓰셔야 할 것 같네요.


SELECT NEXT_DAY(TRUNC(sysdate, 'mm') - 1, 7)      AS first
     , NEXT_DAY(TRUNC(sysdate, 'mm') - 1, 7) + 14 AS third
  FROM dual
;

마농(manon94)님이 2018-09-19 13:48에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41636특정 테이블의 컬럼별 데이터 조회 [2]
k62511
2018-09-29
3382
41635문자열 변환 문의드립니다. [8]
김대훈
2018-09-27
3784
41634매트릭스 자료작성(c,r,u,d) 급질문 [4]
입문자
2018-09-13
3925
41633첫쨰주 토요일과 셋째주 토요일을 구하는 문제인데요 .. [2]
이병훈
2018-09-12
3695
41632세로데이터를 가로로 변환 부탁드립니다 [1]
블루이글
2018-09-11
4239
41631패키지 내에서 패키지 호출방법 [1]
도와주세요
2018-09-10
3421
41630쿼리문을 바꾸려 합니다. [3]
초보
2018-09-08
3941
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.051초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다