代码之家  ›  专栏  ›  技术社区  ›  ihm017

在oracledb中比较两个日期并不能得到正确的结果

  •  0
  • ihm017  · 技术社区  · 5 年前

    我有两个 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”。

    但是如果我运行一个类似的查询 值,它给了我正确的结果。

    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
    

    为什么原始查询没有给出预期的结果?

    0 回复  |  直到 5 年前