在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)
然后什么都没有出现......
任何帮助将不胜感激!
答案 0 :(得分:2)
假设该列是DATE
或TIMESTAMP [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))