2014-11-26 2 views
0

В таблице Oracle, у меня есть updated_dt хранятся как это: 25-ноября-14 10.20.32.000000 PMOracle Отметка - найти записи старше, чем 60 секунд

Я хотел бы, чтобы выбрать из этой таблицы, где записи более 60 секунд. Как я могу это сделать?

Я пробовал:

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

найти время от 60 секунд назад, но если я ставлю в моем где положение:

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

тогда ничего не придумывает ...

Любая помощь будет оценена!

+1

Что такое тип данных 'updated_dt'? Это «дата»? Или временная метка? Временная метка с [местным] часовым поясом'? –

ответ

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)) 
1

Предполагая, что столбец является DATE или TIMESTAMP [WITH [LOCAL] TIMESTAMP] столбец и не VARCHAR2 вы можете использовать это один:

where updated_dt < systimestamp - INTERVAL '60' SECOND

Я всегда удивляюсь, почему люди и снова этот глупый SELECT ... from dual синтаксис

Смежные вопросы