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
운영게시판
최근게시물
CUBRID Q&A 608 게시물 읽기
No. 608
Q.OLE방식을 사용하고 있습니다...
작성자
다트25
작성일
2007-10-12 11:48
조회수
3,631

select to_char(sysdate + ?, \'yyyymmdd\') from db_root;

 

데이터메니져에서 ? 에 숫자를 넣고 하면 에러가 안나는데요...

 

클라이언트에서 int로 숫자를 보내면 에러가 나네요...

 

One or more errors occurred during processing of command.

Semantic: \'+\' operator is not defined on types date and date.

 

그리고 ADD_MONTHS 처럼 날짜를 더하는것은 없나요?

 

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

현재의 쿼리는 날짜 타입을 문자타입으로 변환을 시켜주는 쿼리인데 거기다가 int값을 더하게 되면 타입이 맞지 않기 떄문에 오류가 발생합니다. 원하시는 결과는 아래와 같이 수행하면 얻을 수 있을 것입니다.

select to_number(to_char(sysdate,\'yyyymmdd\'))+1 from db_root

 

>select to_char(sysdate + ?, \'yyyymmdd\') from db_root;

>

>데이터메니져에서 ? 에 숫자를 넣고 하면 에러가 안나는데요...

>

>클라이언트에서 int로 숫자를 보내면 에러가 나네요...

>

>One or more errors occurred during processing of command.

>Semantic: \'+\' operator is not defined on types date and date.

>

>그리고 ADD_MONTHS 처럼 날짜를 더하는것은 없나요?

 

김범준님이 2007-10-12 12:23에 작성한 댓글입니다. Edit

혹시 질문하신 내용의 ?가 date값을 yyyymmdd로 변환한 값을 넣는 것이라고 한다면, 해당 값은 현재 쿼리로 봤을 때 문자타입일 것 같습니다. 문자 타입의 값을 +로 처리를 하게 되면 오류가 발생하게 되고, 이러한 문자를 숫자로 전환한다고 하더라도 결과값에 의미가 없을 것 같습니다.

 

먼저 답변 드린봐와 같이 에러가 나는 쿼리에 대한 정확한 정보를 부탁드립니다.

 

>select to_char(sysdate + ?, \'yyyymmdd\') from db_root;

>

>데이터메니져에서 ? 에 숫자를 넣고 하면 에러가 안나는데요...

>

>클라이언트에서 int로 숫자를 보내면 에러가 나네요...

>

>One or more errors occurred during processing of command.

>Semantic: \'+\' operator is not defined on types date and date.

>

>그리고 ADD_MONTHS 처럼 날짜를 더하는것은 없나요?

 

김범준님이 2007-10-12 13:08에 작성한 댓글입니다. Edit

의도하신것처럼 날짜 + 숫자를 하면 숫자만큼 날짜가 더해지는것은 맞습니다.

다만 지금 쿼리와 같이 숫자 부분에 ? 를 주고 실행시점에 값을 바인딩 하는 경우에 문제가 발생됩니다. ? 에 대한 타입이 정확하지 않아 date로 인식되어 날짜 + 날짜 를하는것처럼 되어 에러가 나고 있습니다.

이 문제를 피하는 방법은 cast연산을 이용하여 date + int를 하는것임을 명확히 해 줄 수 있습니다.

다음과 같은 형태로 사용하면 됩니다.

 

select to_char(sysdate + cast(? as int), \'yyyymmdd\') from db_root

 

 

>select to_char(sysdate + ?, \'yyyymmdd\') from db_root;

>

>데이터메니져에서 ? 에 숫자를 넣고 하면 에러가 안나는데요...

>

>클라이언트에서 int로 숫자를 보내면 에러가 나네요...

>

>One or more errors occurred during processing of command.

>Semantic: \'+\' operator is not defined on types date and date.

>

>그리고 ADD_MONTHS 처럼 날짜를 더하는것은 없나요?

 

강철규님이 2007-10-12 13:38에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
611Q. php 4.4.1용 동적모듈은 없나요??
황현태
2007-10-12
3222
610Q.Tomcat에서 CUBRID 사용하기 문서관련 질문 [1]
qwer
2007-10-12
5722
609Q.mysql과 cubrid를 같은 서버에서 같이 동작시킬수도 있나요?? [2]
황현태
2007-10-12
3390
608Q.OLE방식을 사용하고 있습니다... [3]
다트25
2007-10-12
3631
607Q.Tomcat Connection Pool 질문드립니다. [1]
qwer
2007-10-11
4348
606Q.팝업 메뉴를 이용한 레코드 삭제 문의 [1]
궁금이
2007-10-11
3416
605Q.큐브리드 jdbc 드라이버를 받고싶습니다.
안성민
2007-10-10
3336
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다