HSQLDB - Datum-Format : nicht kompatibel-Daten geben Sie bei der Konvertierung oder Ungültiger datetime-format

Mache ich die integration, die Tests in einer Datenbank Hsqldb. Mein Produktions-Datenbank ist eine Oracle-Datenbank.

Versionen

Hibernate : 4.1.3.final.

Hsqldb : 2.3.3. ( I can't use the 2.3.4 because it can't run all my junit tests in one click.)

Meine Probleme

Traf ich zwei verschiedene Ausnahmen, wenn ich hatte zu test-Methoden, enthält Abfragen, wo die WHERE Zustand fragt ein Datum :

org.hsqldb.HsqlException: incompatible data types in combination

oder

org.hsqldb.HsqlException: data exception: invalid datetime format

Codes, die die Ausnahme verursacht hat

Den code unten verursacht die erste Ausnahme (unverträgliche Datentypen in Kombination)

 select = "from Player player where player.creationDate = to_char(sysdate,'dd/MM/yy')"

Den code unten verursacht die zweite Ausnahme (invalid datetime format)

 select = "from Player player where player.creationDate > '01/01/2016'"

, Wie ich versuchte, dies zu beheben

1) So offensichtlich, das problem ergibt sich aus dem Datum-format. Hsqldb unterstützt die 'yyyy-MM-dd' Datum-format, so dass, wenn ich änderte to_char(sysdate,'dd/MM/yy') und 01/01/2016 in 1995-01-01, es funktionierte.

Aber kann ich nicht ändern, das Datumsformat dieser Methoden.

2) Auf den zweiten Gedanken, als ich die änderung der hsqldb-source-code, aber es schien ein wenig radikal.

Gibt es irgendwelche Möglichkeiten, als die letztere?

Vielen Dank für Ihre Zeit.

benannte Parameter zu verwenden, und verwenden Sie setDate-Funktion statt
Warum sind Sie die Speicherung von Daten, die als varchar?
Ich bin es nicht. to_char(Datum,'fmt') ist ein Orakel-Funktion, die mir erlaubt, um anzuzeigen, ein Datum in einem anderen format. (das Standard-format : dd-mon-yy), Da meine oracle-Datenbank verwendet TT/MM/JJ, ich hatte um diese Funktion zu nutzen.

InformationsquelleAutor ArbiPorter | 2016-07-08

Schreibe einen Kommentar