* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
|
|
Oracle Linux Server 8.9 |
|
|
11.3.3.1223 |
|
|
Dbeaver |
|
|
java, php, odbc 등 입력 |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
| 에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
| 관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
8자리로 들어온 스트링 값을 timestamp 형태로 변경시
일정년도 넘어가면 오류가 발생합니다
-- 정상
select to_timestamp('20380101000000','yyyymmddhh24miss') from dual;
-- 오류발생 : Conversion error in date format.
select to_timestamp('20390101000000','yyyymmddhh24miss') from dual;
CUBRID의 TIMESTAMP 타입이 표현할 수 있는 상한이 2038-01-19 03:14:07 입니다.
따라서 to_timestamp('20390101000000','yyyymmddhh24miss')처럼 2038년을 넘어가는 값은 변환 시 오류가 발생합니다.
2038년 이후의 날짜·시간을 다뤄야 한다면 DATETIME 타입을 사용하세요.
예제)
select to_datetime('20390101000000','yyyymmddhh24miss') from dual;
참고 : 큐브리드 날짜/시간 데이터 타입 매뉴얼 정보(https://www.cubrid.org/manual/ko/11.3/sql/datatype.html#date-time-type)