使用oracle中的时间戳比较两个日期

时间:2013-09-17 09:54:03

标签: sql spring oracle hibernate

select * 
  from  table1 rcd, 
        table2 company 
 WHERE to_timestamp(to_char(rcd.date), 'YYYY-MM-DD HH:MI:SS') >
       to_timestamp(to_char(company.date), 'YYYY-MM-DD HH:MI:SS') 

我想在oracle中使用时间戳(to_timestamp)比较我的两个日期字段,并且我使用上面的查询它没有给出正确的结果(给出的记录不大于来自company.date的记录)。

任何想法如何使用oracle中的to_timestamp进行比较。

1 个答案:

答案 0 :(得分:5)

to_char(<date>)不会生成您用于to_timestamp()的格式。最安全的方法是重复格式参数:

WHERE to_timestamp(to_char(rcd.date, 'YYYY-MM-DD HH:MI:SS'), 'YYYY-MM-DD HH:MI:SS') >
      to_timestamp(to_char(company.date, 'YYYY-MM-DD HH:MI:SS'), 'YYYY-MM-DD HH:MI:SS') 

等待。最安全的是放弃所有这些转换,并且只做:

select * 
from table1 rcd join
     table2 company 
     on rcd.date > company.date;