在我的选择中,我有一个子选择:
(SELECT CAR FROM CAR_OV_CARNEW
WHERE CARFK = table1.id AND carold = 'CAR_SHARE_OLD') CPEND这给了我以下输出颜色:
CPEND
-----
11.07.2011
15.05.2014
14.08.2016我需要的是MONTHS从sysdate到CPEND的区别。
我试过MONTHS_BETWEEN,但不知何故它对我不起作用
最后的结果应该是:
CPEND (DATE) DIFFMONTHS_TEMP
----- -----
11.07.2011 46
15.05.2014 12
14.08.2016 -14我试过这样的说法:
SELECT MONTHS_BETWEEN (TO_DATE(sysdate),
TO_DATE((SELECT CAR FROM CAR_OV_CARNEW
WHERE CARFK = table1.id AND carold = 'CAR_SHARE_OLD') CPEND,'MM-DD-YYYY') ) "Months"
FROM table1;发布于 2015-05-19 11:40:38
规范方法是:
SELECT (SELECT MONTHS_BETWEEN(SYSDATE, CAR)
FROM CAR_OV_CARNEW
WHERE CARFK = table1.id AND carold = 'CAR_SHARE_OLD'
)如果CAR存储为字符串而不是日期,则需要转换它:
SELECT (SELECT MONTHS_BETWEEN(SYSDATE, TO_DATE(CAR, 'DD.MM.YYYY'))
FROM CAR_OV_CARNEW
WHERE CARFK = table1.id AND carold = 'CAR_SHARE_OLD'
)此外,MONTHS_BETWEEN()还返回一个数字类型。如果要将其作为整数(由结果建议),则添加要转换的逻辑、取地板、上限或舍入值。
https://stackoverflow.com/questions/30324538
复制相似问题