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.
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht versuchen, das Datum zu formatieren. Abfrage mit benannter Parameter statt.
Dann können Sie mit setter für alle Datentypen. Siehe Beispiel unten:
froh, dass ich geholfen 🙂
InformationsquelleAutor Apostolos