我从两个不同的表中有两列,其中日期将以不同的格式存储。我怎样才能在两者之间产生差异

时间:2017-06-30 11:25:18

标签: oracle oracle11g

我有两个表,如table1,table2,分别由C1,C2组成。

  

C1是varchar2类型,以01/01/1989格式存储日期。

     

C2属于Date类型,以24-May-2016 00:00:00格式存储数据。

我希望得到两列之间的日期差异,并计算两者之间的差异年数。请告诉我怎么做?

1 个答案:

答案 0 :(得分: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;