트리거문에서 1초빼기 0 2 1,835

by orau [2012.04.23 19:38:24]


DECLARE

/*  디폴트시간 */
SDATE VARCHAR2(20);

/* 시간 */
NDATE VARCHAR2(20);
NDATE2 VARCHAR2(20);


BEGIN
SDATE := '201204241933';


/* member테이블에서 REGDATE 최소값을 찾기 : 201204241933과 같이 입력된 VARCHAR2타입*/
/* nvl을 이용하여 REGDATE값이 널값이면 디폴트 시간을 받아서 NDATE로 저장*/
SELECT nvl(MIN(REGDATE),SDATE) INTO NDATE  FROM member;   

/* 받아온 NDATE값에서 1초 빼기 */
select TO_CHAR(TO_DATE(NDATE, 'yyyymmddhh24') - 1/(24*60*60), 'yyyymmddhh24miss') INTO NDATE2 from dual;



SQL 오류: ORA-01830: 날짜 형식의 지정에 불필요한 데이터가 포함되어 있습니다


위 구문을 너무 어렵게 작성을 한듯 보이기도 합니다.
1초빼기에서
select TO_CHAR(TO_DATE('201204241933', 'yyyymmddhh24') - 1/(24*60*60), 'yyyymmddhh24miss') INTO NDATE2 from dual;

과 같이 값을 직접 지정하면 출력이 되는것 같습니다.

NDATE값을 넣어주면 >> 불필요한 데이터로 인식을 하는것 같습니다.
by 마농 [2012.04.23 22:43:17]
날짜포멧은 시간까지만 주고 입력스트링은 분까지 들어 있네요.
입력값의 형식과 날짜 포멧을 일치시켜 주세요.

by orau [2012.04.24 00:41:33]
이런;; 감사합니다.^^
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입