我运行Oracle 10g和与TYPE_NAME列
TIMESTAMP(6) WITH TIME ZONE
当膨胀成Java类,他们出来的
oracle.sql.TIMESTAMPTZ
但DbUnit的无法处理转换的Oracle特定类字符串写入XML。 我想知道如果有对我来说,这些甲骨文的具体时间戳转换(比如,在我莫名其妙的SELECT语句)的东西java.sql中没有简单的方法。
我运行Oracle 10g和与TYPE_NAME列
TIMESTAMP(6) WITH TIME ZONE
当膨胀成Java类,他们出来的
oracle.sql.TIMESTAMPTZ
但DbUnit的无法处理转换的Oracle特定类字符串写入XML。 我想知道如果有对我来说,这些甲骨文的具体时间戳转换(比如,在我莫名其妙的SELECT语句)的东西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
返回一个java.sql.Date
类。
我想此话,使用IYYY作为格式全年可能不是一个好主意,除非你真的想要得到ISO的一年。 您应该使用YYYY代替IYYY的。
尝试使用到运行SQL为2012年12月31日
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.000000000”,这是不是你所期待的一年。