ORACLE将长毫秒转换为Date

时间:2012-02-28 14:11:32

标签: sql oracle9i

我在ORACLE中有一个字段为CREATED(NUMBER)。它将时间存储在MILLISECONDS中,或者您可以说长格式。现在要求使用Field CREATED在两个日期之间查找数据。

我有下面的查询,它适用于where条件,但不适用于条件之间:

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

有人可以提供SQL来获取两个日期之间的数据吗?

1 个答案:

答案 0 :(得分: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')