【发布时间】:2013-06-05 01:26:04
【问题描述】:
我需要更改来自 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
【问题讨论】:
-
首先,永远不要将日期存储在 varchar 中,其次,ADD_MONTHS() 是一个有两个参数的函数,因此您需要在 -1 之前添加一个逗号,第三,您有 TO_DATE() 和ADD_MONTHS() 反了,第四你需要引用
'MONYYY',第五是'MONYYYY'(额外的Y),最后是datetable.date而不是date.datetable。
标签: sql oracle oracle11g date-arithmetic