В моей таблице есть два 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
Почему он не дает ожидаемый результат с исходным запросом?