Oracle Timestamp - 查找超过60秒的记录

时间:2014-11-26 04:25:49

标签: oracle time

在Oracle表中,我有一个像这样存储的updated_dt:25-NOV-14 10.20.32.000000 PM

我想从这张表中选择记录超过60秒的记录。我怎么能这样做?

我试过了:

select systimestamp-60/(24*60*60) time from dual

从60秒前找到时间,但如果我放入我的where子句:

where updated_dt < (select systimestamp-60/(24*60*60) time from dual)
然后什么都没有出现......

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:2)

假设该列是DATETIMESTAMP [WITH [LOCAL] TIMESTAMP]而不是VARCHAR2 ,您可以使用此列:

where updated_dt < systimestamp - INTERVAL '60' SECOND

我总是想知道为什么人们会使用增益并再次使用这种愚蠢的SELECT ... from dual语法

答案 1 :(得分:0)

请使用以下

where to_date(to_char(updated_dt,'dd-mm-yyyy hh24:mi:ss'),'dd-mm-yyyy hh24:mi:ss') > to_date(to_char(systimestamp,'dd-mm-yyyy hh24:mi:ss'),'dd-mm-yyyy hh24:mi:ss')- (60/(24*60*60))