Oracle将时间戳与日期进行比较

use*_*619 26 oracle

我有一个时间戳字段,我只想在Oracle的查询中比较它的日期部分

我怎么做,

SELECT *
FROM Table1
WHERE date(field1) = '2012-01-01' 
Run Code Online (Sandbox Code Playgroud)

ben*_*y23 56

您可以截断日期部分:

select * from table1 where trunc(field1) = to_date('2012-01-01', 'YYYY-MM-DD')
Run Code Online (Sandbox Code Playgroud)

这种方法的问题在于,field1由于函数调用,任何索引都不会被使用.

或者(更多索引友好)

select * from table1 
 where field1 >= to_timestamp('2012-01-01', 'YYYY-MM-DD') 
   and field1 < to_timestamp('2012-01-02', 'YYYY-MM-DD')
Run Code Online (Sandbox Code Playgroud)