我的表中有两个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
为什么在原始查询中没有给出预期的结果?