2
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 でタイムスタンプ () を使用して 2 つの日付フィールドを比較したいのですが、to_timestamp上記のクエリを使用しても正しい結果が得られません (company.date よりも大きくないレコードが得られます)。

to_timestampin oracleを使用して比較する方法はありますか。

4

1 に答える 1

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;
于 2013-09-17T10:53:42.193 に答える