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 40254 게시물 읽기
No. 40254
날짜타입을 넣어야 하는데 초급이라 버겁습니다.도와주세요.
작성자
DB란?
작성일
2013-09-11 10:24ⓒ
2013-09-11 10:31ⓜ
조회수
6,142

WHERE 컬럼명  = '201312'   --유효년월+4

WHERE 컬럼명 BETWEEN  '201206' AND '201306'   -- (FROM(현재년월-14) - TO(현재년월-2 )   

컬럼들은 데이터 타입이 VARCHAR2(6) 이거입니다.

 

이렇게 추출해야 하는 기간들이 정해진 상태에서  컬럼(대상)들을 SELECT 해서 어떤 집계를 하는 쿼리를 작성해야 합니다.

 

문제는 ADD_MONTH(SYSDATE, 4)

WHERE 컬럼명 BETWEEN ADD_MONTH(SYSDATE,-14)  AND ADD_MONTH(SYSDATE,-2)

로 하였을때는 값이 0으로 찍히는데요.

날짜를  201312로 숫자로 값을 넣었을때는 정상적인 값이 나오고 있거든요.

 

쿼리중에 날짜 타입을 넣는게 아직 버겁네요.. 이런글 올리는거 DB처음 만져보는거라.. 이해해주세요.

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

형변환을 해주세요.

 

 -- 형변환 샘플

SELECT ADD_MONTHS(SYSDATE, -12) 
     , TO_CHAR(ADD_MONTHS(SYSDATE, -12), 'yyyymmdd') 년월일
     , TO_CHAR(ADD_MONTHS(SYSDATE, -12), 'yyyymm') 년월 
  FROM dual 
 
-- 처리.
WITH t(dt) AS(
SELECT '201208' FROM dual UNION ALL
SELECT '201209' FROM dual UNION ALL
SELECT '201210' FROM dual UNION ALL
SELECT '201306' FROM dual UNION ALL  
SELECT '201307' FROM dual UNION ALL
SELECT '201308' FROM dual
)
SELECT *
  FROM t
 WHERE dt BETWEEN TO_CHAR(ADD_MONTHS(SYSDATE,-12), 'yyyymm')
              AND TO_CHAR(ADD_MONTHS(SYSDATE, -2), 'yyyymm')
아린(arin76)님이 2013-09-11 10:38에 작성한 댓글입니다.
이 댓글은 2013-09-11 10:38에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
40257부가세 계산 미치겠네요 [2]
질럿
2013-09-13
7348
40256문의드립니다. 중복건 [2]
새하정
2013-09-12
6372
40255계산식 쫌 봐주세여 [3]
이선영
2013-09-11
6902
40254날짜타입을 넣어야 하는데 초급이라 버겁습니다.도와주세요. [1]
DB란?
2013-09-11
6142
40253procedure 삭제 쿼리 질문입니다. [2]
우리누리
2013-09-10
6555
40252처음으로 글을 올립니다. 세로 data 가로 변형 [1]
안윤준
2013-09-10
6775
40251oracle 접속오류 sysdba접속 시 ORA-01031:insufficient privileges [1]
황선영
2013-09-09
6879
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다