ORACLE Преобразование длинной миллисекунды в дату - PullRequest
1 голос
/ 28 февраля 2012

У меня есть поле в ORACLE СОЗДАНО (НОМЕР).Он хранит время в миллисекундах или, можно сказать, в длинном формате.Теперь необходимо найти данные между двумя датами, используя поле CREATED.

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

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

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

1 Ответ

1 голос
/ 28 февраля 2012

Игра с литералами даты 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')
...