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

时间:2012-09-26 20:02:54

标签: oracle

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

我该怎么做,

SELECT *
FROM Table1
WHERE date(field1) = '2012-01-01' 

3 个答案:

答案 0 :(得分:51)

您可以truncate日期部分:

select * from table1 where trunc(field1) = to_date('2012-01-01', 'YYYY-MM-DD')

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

或者(更多指数友好)

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

答案 1 :(得分:3)

您可以截断日期

SELECT *
FROM Table1
WHERE trunc(field1) = to_Date('2012-01-01','YYY-MM-DD')

查看SQL Fiddle了解更多示例。

答案 2 :(得分:0)

to_date格式适合我。请考虑日期格式: MON-MM.-

t.start_date >= to_date('14.11.2016 04:01:39', 'DD.MM.YYYY HH24:MI:SS')
t.start_date <=to_date('14.11.2016 04:10:07', 'DD.MM.YYYY HH24:MI:SS')
相关问题