首页 > 解决方案 > 如何从oracle数据库中的第24小时获取准确的记录

问题描述

首先,很抱歉这个多余的问题。我的问题有很多可用的结果,但它对我不起作用。有人可以帮助解决以下情况吗?

出于参考目的,我已经包含了列时间戳(col_timestamp)和时间戳(crnt_time_before_24hr)和current_timestamp(crnt_time)之前的24小时

SELECT
    TO_CHAR(delete_requested_dt,'YYYY-mm-dd hh24:mi:ss') as col_timestamp,
    TO_CHAR(systimestamp - interval '24' hour,'YYYY-mm-dd hh24:mi:ss') as crnt_time_before_24hr,
    TO_CHAR(systimestamp,'YYYY-mm-dd hh24:mi:ss') as crnt_time

FROM
    test_user_table
WHERE
        status_id IN (
            801,802
        )
    AND
        trunc(delete_requested_dt) <=  sysdate - interval '1' day
ORDER BY delete_requested_dt desc;

上述查询与我的目标完全相反。此查询将检查当前日期 24 小时以外的值。我使用此查询来检查是否存在任何值,这些值应该在当前日期后的 24 小时内出现!

以下是结果

COL_TIMESTAMP       CRNT_TIME_BEFORE_24 CRNT_TIME          
------------------- ------------------- -------------------
2019-02-26 23:55:57 2019-02-26 13:06:30 2019-02-27 13:06:30
2019-02-26 23:55:46 2019-02-26 13:06:30 2019-02-27 13:06:30
2019-02-26 23:55:38 2019-02-26 13:06:30 2019-02-27 13:06:30
2019-02-26 23:55:25 2019-02-26 13:06:30 2019-02-27 13:06:30
2019-02-26 23:55:14 2019-02-26 13:06:30 2019-02-27 13:06:30
2019-02-26 23:55:01 2019-02-26 13:06:30 2019-02-27 13:06:30
2019-02-26 23:54:51 2019-02-26 13:06:30 2019-02-27 13:06:30
2019-02-26 23:54:40 2019-02-26 13:06:30 2019-02-27 13:06:30
2019-02-26 23:54:29 2019-02-26 13:06:30 2019-02-27 13:06:30
2019-02-26 23:23:40 2019-02-26 13:06:30 2019-02-27 13:06:30

从输出中可以看出,从当前日期开始 24 小时内的值是 2019-02-26 13:06:30。

LHS(COL_TIMESTAMP) 上表中的日期值显示数据为 2019-02-26 23:23:40.!!!!

怎么可能?只有小于 2019-02-26 13:06:30 的值才应该正确!!!我错过了什么吗?请帮我。

仅供参考:delete_requested_dt 列是时间戳数据类型

标签: oracle

解决方案


尝试这个:

SELECT
    TO_CHAR(delete_requested_dt,'YYYY-mm-dd hh24:mi:ss') as col_timestamp,
    TO_CHAR(systimestamp - interval '24' hour,'YYYY-mm-dd hh24:mi:ss') as crnt_time_before_24hr,
    TO_CHAR(systimestamp,'YYYY-mm-dd hh24:mi:ss') as crnt_time

FROM
    test_user_table
WHERE
        status_id IN (
            801,802
        )
    AND
        cast(delete_requested_dt as date) <=  sysdate - interval '1' day
ORDER BY delete_requested_dt desc;

推荐阅读