我在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来获取两个日期之间的数据吗?
答案 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')