質問

Oracle 10gを実行していますが、Type_Nameの列があります

TIMESTAMP(6) WITH TIME ZONE

Javaクラスに拡張すると、次のようになります

oracle.sql.TIMESTAMPTZ 

ただし、DbUnitは、XMLに書き込むためにOracle固有のクラスを文字列に変換することはできません。これらのOracle固有のタイムスタンプをjava.sqlの何かに変換する簡単な方法(たとえば、SELECTステートメントで)があるかどうか疑問に思っています

役に立ちましたか?

解決

この問題を正確に処理する必要はありませんでしたが、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 にはタイムゾーン情報が含まれます(この例にはありません)

後で、これは SimpleDateFormat クラス。

または、 oracle.sql。 TIMESTAMPTZ クラスには、 java.sql.Date クラスを返す dateValue というメソッドがあります。

他のヒント

ISO年を取得したいのでなければ、年の形式としてIYYYを使用するのは良い考えではない可能性があることに注意してください。 IYYYの代わりにYYYYを使用する必要があります。

次を使用して2012年12月31日の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;

returns" 2013-12-31 00:00:00.000000000"予想される年ではありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top