2017-06-30 11 views
0

私はそれぞれC1、C2で構成されるtable1、table2のような2つのテーブルがあります。私は2つの異なるテーブルの2つのカラムを持っています。ここで、日付は異なるフォーマットで保存されます。どのように私は両方の違いを計算することができます

C1は、varchar2タイプのもので、日付は01/01/1989形式です。

C2 is is Date型は、2015年5月24日00:00:00形式でデータを格納します。

私は両方の列の日付の違いを取得し、両方の違いの年を計算したいと思います。どのように私に教えてください?

+0

正しい型を使用する最初のテーブル内のデータを修正してください。それが本当に最善のアプローチです。 –

+0

したがって、 'table1.c1'は' 'date" 'jan-01-1989'か' 01-jan-1989'ですか?どうして知っていますか? – APC

+0

なぜ、なぜあなたは 'DATE'を' varchar'として保存していますか?しないでください –

答えて

0

はこれを試してみてください:

SELECT FLOOR(MONTHS_BETWEEN(TO_DATE('24-May-2016 00:00:00','DD-MON-YYYY HH24:MI:SS'), 
TO_DATE('01/01/1989','MM/DD/YYYY'))/12) FROM dual; 

あなたは以下のようにフィールド名とテーブルを交換する必要があります。

SELECT FLOOR(MONTHS_BETWEEN(TO_DATE(t2.datefield,'DD-MON-YYYY HH24:MI:SS'), 
TO_DATE(t1.datestringfield,'MM/DD/YYYY'))/12) FROM table t1 INNER JOIN t2 
ON t1.id = t2.id; 
関連する問題