2012-02-28 1 views
1

У меня есть поле в ORACLE as CREATED (NUMBER). Он хранит время в MILLISECONDS или вы можете сказать длинный формат. Теперь необходимо найти данные между двумя датами, используя поле CREATED.ORACLE Преобразование длинной миллисекунды в дату

У меня есть следующие ниже запроса, который работает, когда выполняется условие, но не между условием:

SELECT date'1970-01-01' + TIMECREATED/1000/60/60/24 as timet 
FROM XXX_TABLE WHERE ITBD='829993'; 

Может кто-то предоставить мне SQL, чтобы получить данные между двумя датами?

+2

Пожалуйста, вы можете показать нам код *** не работает ***? – MatBailie

+1

... и объясните, каким образом он не работает? –

ответ

1

Игра с Oracle Дата литералов, временные метки и изо дня в секунду интервалы:

Вы можете попробовать что-то такого рода:

select * 
    from the_table where to_timestamp(the_date_column,'DD/MM/YYYY') - date'1970-01-01' 
       between numtodsinterval(first_created/1000,'second') and numtodsinterval(second_created/1000,'second') 

или

select * 
    from the_table 
where date'1970-01-01' + numtodsinterval(created/1000,'second') 
     between to_timestamp('2011-01-01','YYYY-MM-DD') 
      and to_timestamp('2012-01-01','YYYY-MM-DD')