首先,对这个多余的问题表示抱歉。有很多结果可用于我的问题,但对我而言不起作用。有人可以在以下情况下提供帮助吗?
出于参考目的,我包括了timestamp(col_timestamp)列和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的值才正确!我想念什么吗?请帮助我。
FYI:delete_requested_dt列为时间戳数据类型
答案 0 :(得分:1)
尝试一下:
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;