1. 개요

Oracle 에서 컬럼은 date 타입이나 WAS 에서 jdbc 이용하여 select 하여 리턴할때 timestamp 타입으로 인식하는 오류가 발생했다.

로컬에서 테스트 시에도 date 타입으로 인식되고 있으나 WebSphere 에서 실행시에만 timestamp 타입으로 인식되는 현상이다.

 WAS 에 어떤 설정을 해주면 이 현상이 해결되는지 찾아보았다.

 

2. DATE 타입

 date 타입은 가장 오래되고 보편적으로 사용되는 날짜 관련 데이터 타입이다. 년, 월, 일, 시, 분, 초 등 날짜를 표기하기 할 수 있다.

 오라클의 기본 date 타입 형식은 YY/MM/DD 이며, TO_DATE, SYSDATE 함수를 이용해서 날짜형식으로 변환하고 출력할 수 있다.

ex ) DATE '1993-2-23

 

3. TIMESTAMP 타입

DATE 타입의 확장된 타입으로 밀리세컨드 단위로 초를 표현하며 2개의 필드로 값이 출력된다. 실행되는 순간의 시간값을 리턴한다.

ex ) TIMESTAMP '1993-2-23 12:20:00.00'

 - TIMESTAMP WITH LOCALE TIME ZONE : 사용자 DB 의 시간을 따른다.

 - TIMESTAMP WITH TIME ZONE : 지역 시간대를 함께 저장하여 표준시간대를 기준으로 환산하여 현 지역 시간대를 계산한다.

 

4. WAS 에서 조치법

 사용자는 DATE 타입으로 리턴하기를 원하나 TIMESTAMP 타입으로 계속 출력되는 경우, WAS 에서 설정할 수 있는 방법이 있다.

-DNLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"

 위 처럼 옵션을 추가해주면 WAS 에서도 DATE 타입으로 정상적으로 리턴된다.

 

WebSphere 의 경우에는 웹콘솔에서

미들웨어 서버 > (인스턴스명) > 프로세스 정의 > 환경 항목

YYYY-MM-DD HH24:MI:SS  

 

위 항목을 추가해줘도 가능하다.