Сравнение двух дат в базе данных Oracle не дает должного результата - PullRequest
0 голосов
/ 05 марта 2019

В моей таблице есть два DATE столбца со значениями ниже:

Order_date  Service_date
01-06-17    31-01-18
01-06-17    01-10-18
01-06-17    01-07-18
01-06-17    01-04-18`

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

SELECT
    TRUNC(Order_date) Order_date,
    TRUNC(Service_date) Service_date,
    CASE
        WHEN trunc(Order_date) > trunc(Service_date) THEN 'Y'
        ELSE 'N'
    END actual
FROM
    table_x;

Я получаю результат как:

Order_date  Service_date  actual
01-06-17    31-01-18      Y

Ожидаемый ответ должен быть «N».

Но если я выполню аналогичный запрос, фактически передав значения DATE, это даст мне правильный результат.

SELECT
    to_date('01-06-17','DD-MM-RR') Order_date,
    to_date('31-01-18', 'DD-MM-RR') Service_date,
    CASE
        WHEN to_date('01-06-17','DD-MM-RR') > to_date('31-01-18', 'DD-MM-RR') THEN 'Y'
        ELSE 'N'
    END actual
FROM
    table_x;

Order_date  Service_date  actual
01-06-17    31-01-18      N

Почему он не дает ожидаемый результат с исходным запросом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...