Meine Oracle-Tabelle hat eine Spalte tmstp
mit dem TIMESTAMP(3) WITH TIME ZONE
-Datentyp.Verwendung von BETWEEN oder <=, > = für Oracle-Zeitstempel
Wenn ich die folgende Abfrage ausführen
SELECT COUNT(column1)
FROM table1
WHERE tmstp BETWEEN to_timestamp_tz('10-OCT-10 05.00.00.000000000 AM -05:00', 'DD-MON-RR HH.MI.SSXFF AM TZR')
AND to_timestamp_tz('11-OCT-10 04.59.59.999999999 AM -05:00', 'DD-MON-RR HH.MI.SSXFF AM TZR');
es gibt etwa die doppelte Zählung wie die folgende Abfrage:
SELECT COUNT(column1)
FROM table1
WHERE tmstp >= to_timestamp_tz('10-OCT-10 05.00.00.000000000 AM -05:00', 'DD-MON-RR HH.MI.SSXFF AM TZR')
AND tmstp <= to_timestamp_tz('11-OCT-10 04.59.59.999999999 AM -05:00', 'DD-MON-RR HH.MI.SSXFF AM TZR');
Ich dachte, sie zu vergleichbaren Ergebnissen führen sollte. Irgendwelche Eingaben, was passieren könnte? Wie sollte ich das debuggen?
welche Version von Oracle verwenden Sie? –
Es ist 10g. Frage bearbeitet – Russell
Nur ein Kommentar: Verwenden Sie stattdessen 'count (1)'; es ist viel schneller für Orakel. –