如何在Oracle数据库中添加两列的月份

时间:2019-02-04 16:49:02

标签: sql database oracle

我的要求是我想找出在定义的期限后已关闭并过期的帐户。 我的帐户关闭日期(CLOSE_DATE)定义为TIMESTAMP, 我的保留期(RET_PERIOD)以月为单位

现在我想添加CLOSE_DATE和RET_PERIOD的月份。 那么如何从CLOSED_DATE提取月份数并用RET_PERIOD添加呢?

例如,如果帐户在'03 -Feb-2018'上关闭,我想添加RET_PERIOD,它在CLOSED_DATE的月份中以月定义(不同帐户的不同),然后需要将该SUM与当前日期进行比较并显示它大于当前日期。

如果帐户111的RET_PERIOD为3个月,则总和应显示“ 2018年5月3日”

2 个答案:

答案 0 :(得分:3)

如果我对您的理解正确,那么您想要将存储在CLOSED_DATE列中的月份数(例如4个月)添加到某个日期(例如'03 -feb-2018')存储在ADD_MONTHS列中。

如果是这样,那么SQL> alter session set nls_date_format = 'dd.mm.yyyy'; Session altered. SQL> with test (closed_date, ret_period) as 2 (select date '2018-02-03', 4 from dual union all 3 select date '2016-02-29', 1 from dual 4 ) 5 select closed_date, ret_period, 6 add_months(closed_date, ret_period) result 7 from test; CLOSED_DAT RET_PERIOD RESULT ---------- ---------- ---------- 03.02.2018 4 03.06.2018 29.02.2016 1 31.03.2016 SQL> 是您所需要的:

numElems := len(returnObj)
returnObj = append(returnObj, make([]byte, len(obj))...)

答案 1 :(得分:0)

您可以使用add_months函数。 例如,如果保留期为12个月:

ADD_MONTHS( CLOSED_DATE , 12) > CURRENT_DATE