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
운영게시판
최근게시물
DB2 Q&A 3006 게시물 읽기
No. 3006
해당 월의 몇번째 주인지 뽑아오는 쿼리 질문...
작성자
초보
작성일
2010-09-06 16:18
조회수
9,472

오라클에선 아래와 같은 방식으로 구현을 하였습니다.

 SELECT TO_CHAR(TRUNC(TO_DATE(LOGTIM, 'YYYYMMDDHH24MISS'), 'D')  , 'YYYYMM\"0\"W'   ) YYMMWK  from tablea;

input

20100903180022

output

20100901

즉 해당 월의 몇번째 주인지 알아내는 쿼리를 db2에 알맞은 형태로 부탁드립니다.

소중한 답변 기다리고 있겠습니다. 감사합니다.

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

해당 쿼리가 맞게는 나오나요 ?

일단 oracle에서 테스트 했을때도 원하는 결과는 아니지 싶은데 말입니다.

완전 엉뚱한 값이 나오고 있는데...

어쟀거나 to_date 포멧에 "0"을 사용하지 못하네요.

 

나머지는 동일하게 사용하셔도 되지 싶습니다.

오라클에서의 날자포멧에서의 w가 1~7일을 1주로 보고 있는데...  db2에서는 일~토를 1주로 보지 싶네요.

 

옵션 설정의 차이던가?

 

아무튼 제가 테스트 해봤을때는 그러네요

암비님이 2010-09-07 09:26에 작성한 댓글입니다. Edit

trunc 함수도 약간 다르게 동작하네요

'D'를 사용할 경우 해당주의 시작일자로 자르네요.

 

암비님이 2010-09-07 09:36에 작성한 댓글입니다. Edit

아 죄송합니다. 약간의 차이점이 있네요 output 처럼 출력을 하려면

'YYYYMM\"0\"W' 가 아니고 'YYYYMMW' 이런 방식으로 해야 겠지용  음..

 select
 TO_CHAR(TRUNC(TO_DATE('20100903180022', 'YYYYMMDDHH24MISS'), 'D')  , 'YYYYMMW'    ) YYMMWK    from dual;

위와 같은 결과를 원하고 있습니다.

관심 가져주셔서 감사합니다.

초보님이 2010-09-07 15:00에 작성한 댓글입니다. Edit

select
 TO_CHAR(TRUNC(TO_DATE('20100903180022', 'YYYYMMDDHH24MISS'), 'D')  , 'YYYYMMW'    ) YYMMWK    from sysibm.sysdummy1;

 

예시하신 쿼리를 동일하게 테스트 하니 동일한 결과가 나오고 있습니다.

oracle : 2010085

db2 : 2010085

 

혹시 에러가 나거나 결과가 다르게 나오나요 ?

암비님이 2010-09-07 19:23에 작성한 댓글입니다. Edit

select
 TO_CHAR(TRUNC(TO_DATE('20100905180022', 'YYYYMMDDHH24MISS'), 'D')  , 'YYYYMMW'    ) YYMMWK    from sysibm.sysdummy1;

을 테스트했을땐 또 다르게 나오네요.

oracle : 2010091

db2 : 2010092

 

이거 도움을 못 드리네요

암비님이 2010-09-07 19:29에 작성한 댓글입니다. Edit

TO_DATE 는 어떻게 사용하는거죠?? 

계속 에러가 나던데.. 두번째 인수가 어쩌구저쩌구 뜨더라구요.

SELECT
(DAYOFWEEK(SUBSTR('20100901',1,4)||'-'||SUBSTR('20100901',5,2)||'-'||SUBSTR('20100901',7,2)) - 2 + INT(SUBSTR('20100925',7,2)))/7+1
FROM  SYSIBM.SYSDUMMY1

그래서 이렇게 무식하게...

봄빛매실님이 2010-09-14 00:43에 작성한 댓글입니다. Edit

조회일자가 해당월의 몇번째 주에 속하는지 아래와 같이 만들어 봤습니다.

WEEK를 사용해서 해당 일자와 해당 일자가 들어 있는 월의 1일이 각각 몇주차에 속하는지를 찾아서

해당 일자의 주차에서 1일의 주차를 빼고 거기에 +1 해서 해당월의 몇주차..라고 표현 했습니다.

1) 시스템 날짜 사용 시

SELECT
(CURRENT DATE) AS DD,
(WEEK(DATE(CURRENT TIMESTAMP))
 - WEEK(DATE(SUBSTR(CHAR(CURRENT DATE,ISO),1,7)||'-01')) +1) DW
FROM  SYSIBM.SYSDUMMY1

2) 받아온 날짜 사용 시

SELECT
DATE(INSERT(INSERT('20100925',5,0,'-'),8,0,'-')) DD,
(WEEK(DATE(INSERT(INSERT('20100930',5,0,'-'),8,0,'-')))
 - WEEK(DATE(INSERT(INSERT('201009',5,0,'-'),8,0,'-01'))) +1) DW
FROM  SYSIBM.SYSDUMMY1

박영준(dppyj)님이 2010-09-15 19:09에 작성한 댓글입니다.

여러분들의 관심 대단히 감사합니다.

진정으로 많은 도움이 된거 같습니다. 다시 한번 감사드리고 건승하시길 바랍니다.

초보님이 2010-09-16 15:08에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
3009DB 저장시 오류..
김관중
2010-09-13
8090
3008DB2/AIX62 v9.1 사용할수있는 jdbc는 어떤걸 써야하나요 ..
김광용
2010-09-10
6987
3007윈도우용 db2 소프트웨어가 필요합니다. [2]
박남일
2010-09-07
14542
3006해당 월의 몇번째 주인지 뽑아오는 쿼리 질문... [8]
초보
2010-09-06
9472
3005DB2 버전별 어떤 DRDA 프로토콜 버전을 사용하나요?
손님
2010-09-04
6598
3004DB2 INSERT 관련해 질문하나 드려요(초보) [1]
신창호
2010-09-01
7611
3003DB2 초보 질문 하나 올립니다..
최병문
2010-08-22
8407
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.048초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다