Использование BETWEEN или <=,> = для временных меток Oracle

В моей таблице Oracle есть столбец tmstp с типом данных TIMESTAMP (3) WITH TIME ZONE .

Когда я запускаю следующий запрос

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');

, он дает примерно вдвое больше считайте как следующий запрос:

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');

Я думал, что они должны дать эквивалентные результаты. Есть какие-нибудь сведения о том, что может происходить? Как мне отладить это?

8
задан MikeTheLiar 9 September 2015 в 20:55
поделиться