Sql 甲骨文

Sql 甲骨文,sql,oracle,Sql,Oracle,在我的选择中,我有以下子选择: (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 我需要的是从sysdate到CPEND之间的month差异 我试了几个月,但不知怎么的,它对我不起作用 最终结果应为: CPEND (DATE) DIFF

在我的选择中,我有以下子选择:

(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
我需要的是从
sysdate
CPEND
之间的
month
差异

我试了几个月,但不知怎么的,它对我不起作用

最终结果应为:

    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;

标准方法是:

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\u BETWEEN()
返回一个数字类型。如果您希望它是一个整数(根据您的结果建议),则添加要转换的逻辑,取下限、上限或四舍五入值。

标准方法是:

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\u BETWEEN()
返回一个数字类型。如果您希望它是一个整数(根据您的结果建议),则添加要转换的逻辑,取下限、上限或四舍五入值。

标准方法是:

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\u BETWEEN()
返回一个数字类型。如果您希望它是一个整数(根据您的结果建议),则添加要转换的逻辑,取下限、上限或四舍五入值。

标准方法是:

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\u BETWEEN()
返回一个数字类型。如果您希望它是一个整数(根据您的结果建议),则添加要转换的逻辑,取下限、上限或四舍五入值。

请使用
months\u显示您的查询。另外,
cp\u end
的数据类型是什么?我编辑了问题,请在
之间的
months\u中显示您的查询。另外,
cp\u end
的数据类型是什么?我编辑了问题,请在
之间的
months\u中显示您的查询。另外,
cp\u end
的数据类型是什么?我编辑了问题,请在
之间的
months\u中显示您的查询。另外,
cp\u end
的数据类型是什么?我编辑了这个问题