문제

나는 Oracle 10G를 실행하고 있으며 type_name이있는 열이 있습니다

TIMESTAMP(6) WITH TIME ZONE

Java 클래스로 팽창하면 나옵니다

oracle.sql.TIMESTAMPTZ 

그러나 DBunit은 Oracle 특정 클래스를 XML에 쓰기 위해 문자열로 변환 할 수 없습니다. 이 Oracle 특정 타임 스탬프에서 java.sql의 무언가로 변환 할 수있는 쉬운 방법이 있는지 궁금합니다 (예 : Select 문에서 어떻게 든).

도움이 되었습니까?

해결책

나는이 문제를 정확하게 다룰 필요가 없었지만, 선택한 쿼리에서 문자열로 통과하는 것은 괜찮을 것이라고 생각합니다.

당신은 사용할 수 있습니다 to_char 기능. 문자열로 변환합니다. 예 :

SQL> select to_char(systimestamp, 'YYYY-MM-DD HH24:MI:SS.FF TZD') as d from dual;

D
----------------------------------
2008-10-21 17:00:43.501591

그런 다음 프로그램에 의해 문자열로 표시됩니다. TZD 시간대 정보 포함 (이 예에는 없음)

나중에 이것은 Java가 SimpledateFormat 수업.

대안 적으로, oracle.sql.timestamptz 클래스에는이라는 메소드가 있습니다 dateValue a java.sql.Date 수업.

다른 팁

ISO 연도를 원하지 않는 한 IYYY를 연중 형식으로 사용하는 것은 좋은 생각이 아닐 수도 있습니다. iyyy 대신 yyyy를 사용해야합니다.

2012 년 31.12.2012의 SQL을 실행하십시오

select to_char(timestamp'2012-12-31 00:00:00 +00:00', 'IYYY-MM-DD HH24:MI:SS.FF TZD') as d from dual;

"2013-12-31 00 : 00 : 00 : 00.000000000"을 반환합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top