Отметка времени Oracle с указанием часового пояса в вопросе о предложении where

У меня есть следующий запрос SQL с

select * from MY_TABLE
 MY_COL >= to_timestamp_tz('08-03-17 07:25:00.0000 EST', 'dd-mm-yy hh24:mi:ss.ff TZR') and 
 MY_COL <= to_timestamp_tz('08-03-17 09:08:00.0000 EST', 'dd-mm-yy hh24:mi:ss.ff TZR')

Где есть по крайней мере следующие 2 записи (как показано в SQL Developer).

03-AUG-17 07.25.51.576000000 AM AMERICA/NEW_YORK
03-AUG-17 07.31.33.553000000 AM AMERICA/NEW_YORK

Мой запрос не возвращает записей. Я ожидаю получить обе эти записи обратно. Есть ли что-то очевидное, чего мне здесь не хватает?

Спасибо

1 ответ

Решение

Пожалуйста, посмотрите внимательно на это

MY_COL >= to_timestamp_tz('08-03-17 07:25:00.0000 EST', 'dd-mm-yy hh24:mi:ss.ff TZR') and 
 MY_COL <= to_timestamp_tz('08-03-17 09:08:00.0000 EST', 'dd-mm-yy hh24:mi:ss.ff TZR')

Строка даты: '08-03-17 ... и строка формата: 'dd-mm-yy ....

  • дд- это день = 08
  • мм - это МЕСЯЦ = 03
  • уу - год = 17

Пожалуйста, проверьте в документации: формат моделей

Итак, ваш запрос ищет даты, которые:

  • лучше чем 08-MARCH-2017 07:25
  • ниже чем 8-MARCH-2017 09:08

Неудивительно, что запрос не находит эти записи:

03-AUG-17 .....
03-AUG-17 .....

АВГУСТ не МАРТ

Другие вопросы по тегам