我需要以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
答案 0 :(得分:2)
ADD_MONTHS
函数需要日期变量作为输入。因此,首先需要将varchar列转换为日期类型,然后应用add_months
函数。
SELECT ADD_MONTHS (TO_DATE ('May2013', 'monyyyy'), -1) FROM DUAL;
返回类型为日期。在这种情况下,它返回4月第一天的第0小时。