ORACLE SQL игнорировать сравнение to_date - PullRequest
0 голосов
/ 24 марта 2020

Я застрял с тривиальным сравнением дат:

мой запрос возвращает набор из 3 записей, опубликованных ниже

enter image description here

добавив к предложению where условие:

halaffecteddate <= to_date('20-03-20 23:43:00','dd-mm-YYYY HH24:MI:SS')

возвращает только одну запись (строка 4)

Может кто-нибудь объяснить, почему?

Зависит ли это от формат даты клиента?

Я использую oracle sql developer

1 Ответ

1 голос
/ 24 марта 2020

Этот код:

to_date('20-03-20 23:43:00','dd-mm-YYYY HH24:MI:SS')

Становится датой 20-МАР- 0020 23:43:00, поскольку при указании YYYY oracle анализируется 20 как 0020, а не 2020

Мы не можем реально увидеть, какие даты у вас действительно есть в вашей таблице, потому что они состоят из двух цифр, но единственный способ, которым "просто строка 4" будет возвращена из этого условие, если дата в halaffecteddate строки 4 также является годом 0020. Возможно, добавьте еще один столбец к вашему запросу: EXTRACT(YEAR FROM haleffectivedate) и посмотрите, вернется ли он 20 или 2020 для строки 4 - я предполагаю, что он вернет 20

...