从包含MONYYYY的日期列中检索上个月

时间:2013-06-09 03:23:35

标签: sql oracle oracle11g date-arithmetic

我需要以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

1 个答案:

答案 0 :(得分:2)

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

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

返回类型为日期。在这种情况下,它返回4月第一天的第0小时。