0

我需要更改来自 May2013 (MonYYYY) 形式的表的日期值。列本身是一个 VARCHAR

在我的选择语句中,我希望检索上个月(2013 年 4 月)。如果我使用的是 SYSDATE,我已经做了一些研究并发现了以下内容:

select to_date(add_months(sysdate, 'MONYYY')-1) from dual

如何使它适用于我上面的日期结构?我试过了:

select to_date(add_months(date.datetable, MONYYY)-1) from datetable
4

1 回答 1

2

ADD_MONTHS函数需要一个日期变量作为输入。因此,首先您需要将 varchar 列转换为日期类型,然后应用该add_months函数。

SELECT ADD_MONTHS (TO_DATE ('May2013', 'monyyyy'), -1) FROM DUAL;

返回类型将是日期。在这种情况下,它返回四月第一天的第 0 个小时。

于 2013-06-09T04:59:41.363 回答