如何在oracle数据库中从24小时内获取精确记录

如何在oracle数据库中从24小时内获取精确记录,oracle,Oracle,首先,很抱歉这个多余的问题。我的问题有很多结果,但对我来说不起作用。有人能在下面的场景中提供帮助吗 出于参考目的,我已经包括了列时间戳(col_timestamp)和从时间戳(crnt_time_before_24hr)到当前时间戳(crnt_time)的前24小时 从输出中可以看到,从当前日期算起24小时内的值为2019-02-26 13:06:30 LHS表中的日期值(COL_时间戳)显示数据为2019-02-26 23:23:40 这怎么可能呢?只有小于2019-02-26 13:06:3

首先,很抱歉这个多余的问题。我的问题有很多结果,但对我来说不起作用。有人能在下面的场景中提供帮助吗

出于参考目的,我已经包括了列时间戳(col_timestamp)和从时间戳(crnt_time_before_24hr)到当前时间戳(crnt_time)的前24小时

从输出中可以看到,从当前日期算起24小时内的值为2019-02-26 13:06:30

LHS表中的日期值(COL_时间戳)显示数据为2019-02-26 23:23:40

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

仅供参考:delete_requested_dt列是timestamp数据类型

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;
选择
将字符(删除请求的字符,'YYYY-mm-dd hh24:mi:ss')作为列时间戳,
将字符(系统时间戳-间隔“24”小时,'YYYY-mm-dd hh24:mi:ss')作为24小时前的crnt时间,
将字符(systimestamp,'YYYY-mm-dd hh24:mi:ss')作为crnt\U时间
从…起
测试用户表
哪里
中的状态标识(
801,802
)
及

强制转换(删除请求的日期)这是可能的,因为您正在
where
子句中使用
trunc
。如果您使用trunc,则只有日期通过。请参阅从双通道选择trunc(systimestamp)
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
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;