Oracle-Datumsvergleich wegen Sommerzeit unterbrochen

Wir haben ein Problem mit einer SQL-Abfrage behoben, die von einem App-Server ausgeführt wurde, auf dem Java über den Ruhezustand ausgeführt wird. Der Fehler:

[3/10/14 10:52:07:143 EDT] 0000a984 JDBCException W org.hibernate.util.JDBCExceptionReporter logExceptions SQL Error: 1878, SQLState: 22008
[3/10/14 10:52:07:144 EDT] 0000a984 JDBCException E org.hibernate.util.JDBCExceptionReporter logExceptions ORA-01878: specified field not found in datetime or interval

Wir konnten dies auf die einfache SQL weiter unten eingrenzen.

select * 
from MY_TABLE T
where T.MY_TIMESTAMP >= (CURRENT_TIMESTAMP - interval '1' hour );

Wenn wir dies in derselben Datenbank ausführen, erhalten wir den Fehler:

ORA-01878: specified field not found in datetime or interval
01878. 00000 -  "specified field not found in datetime or interval"
*Cause:    The specified field was not found in the datetime or interval.
*Action:   Make sure that the specified field is in the datetime or interval.

DasMY_TIMESTAMP Spalte ist definiert alsTIMESTAMP(6).

FWIW, wenn wir den Vergleich in der obigen SQL von ändern>= zu<=funktioniert die Abfrage.

Wir gehen davon aus, dass dies etwas mit der Zeitumstellung zu tun hat (wir sind in Amerika / New_York), aber wir haben Probleme beim Versuch, herauszufinden, wie wir mit unserem Debugging von hier aus vorgehen sollen.

Wir haben dieses Problem auch bei einer ähnlichen Abfrage gesehen, die über MyBatis ausgeführt wird, und der Fehler sieht folgendermaßen aus:

### Error querying database.  Cause: java.sql.SQLException: ORA-01878: specified field not found in datetime or interval

### The error may involve defaultParameterMap
### The error occurred while setting parameters
### Cause: java.sql.SQLException: ORA-01878: specified field not found in datetime or interval

UPDATE: Eine Teamkollegin unter Windows änderte ihre Windows-Einstellungen für Datum und Uhrzeit, indem sie das Kontrollkästchen "Uhr automatisch auf Sommerzeit einstellen" deaktivierte und dann eine neue SQLDeveloper-Instanz öffnete. Die zweite Instanz kann die Abfrage problemlos ausführen, die erste (mit der alten DST-Einstellung) schlägt jedoch weiterhin fehl.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage