DbUnit için oracle.sql.TIMESTAMPTZ ve standart JDBC sınıflar arasında dönüştürme

oy
1

Ben Oracle 10g koşu ve TYPE_NAME ile sütuna sahip değilim

Saat dilimi TIMESTAMP (6)

java sınıflara şişirilmiş zaman onlar çıkıp

oracle.sql.TIMESTAMPTZ 

Ama DbUnit XML yazmak için Oracle Strings özgü sınıfları dönüştürme işleyemez. Beni java.sql bir şey bu Oracle özgü damgaları gelen (her nasılsa benim SEÇ açıklamada diyelim) dönüştürmek için herhangi kolay yolu olup olmadığını merak ediyorum.

Oluştur 21/10/2008 saat 18:11
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
1

Tam olarak bu sorunla başa çıkmak için olmadı, ama SEÇ sorgudan bir dize olarak gelmez sahip ince olacağını tahmin.

Sen kullanabilirsiniz to_char işlevi. Bir dizeye dönüştürmek için. Örneğin:

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

Bu daha sonra bir dize olarak program tarafından görülecektir. TZDzaman dilimi bilgisini (ki hiçbiri bu örnekte yoktur) içerir

Daha sonra bu daha sonra kullanarak Java tarafından ayrıştırılır olabilir SimpleDateFormat sınıfını.

Seçenek olarak ise, oracle.sql.TIMESTAMPTZ sınıf olarak adlandırılan bir yöntemi vardır dateValue, bir döner java.sql.Datesınıfı.

Cevap 21/10/2008 saat 20:04
kaynak kullanıcı

oy
1

Ben gerçekten ISO yılı olsun istemiyorsanız yıl için biçim olarak IYYY kullanarak iyi bir fikir olmayabilir belirtme istiyorum. Sen IYYY yerine YYYY kullanmalıdır.

kullanarak 31.12.2012 için SQL çalıştırmak için deneyin

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

beklediğiniz yıl değil "00.000000000 2013/12/31 00: 00" döner.

Cevap 12/10/2011 saat 13:18
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more