Отметка времени 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 .....
АВГУСТ не МАРТ