当前位置:  开发笔记 > 数据库 > 正文

添加日期不超过一个月

如何解决《添加日期不超过一个月》经验,为你挑选了1个好方法。

我希望有人可以帮助我.

我想在数据库日期添加一个月,但我希望在最后的那些日子里防止两个月跳过.

例如,我可能有:

2009年1月31日

我想得到

2009年2月28日

并不是

2009年3月2日

下一个日期是

2009年3月28日

2009年6月28日

等等

是否有一个函数已经在oracle中执行这种操作?

编辑

叶氏.我想每个月将所有具有某种状态的记录复制到下一个(因此用户不必再每月输入2,000行)

我可以手动获取所有记录并更新日期(以命令方式)但我宁愿让SQL完成这项工作.

就像是:

insert into the_table 
select f1,f2,f3, f_date + 30 /* sort of ... :S */  from the_Table where date > ? 

但问题出在最后一天.

在我必须编写类似这样的代码之前有任何想法?

for each record in 
   createObject( record )
   object.date + date blabala
   if( date > 29 and if februrary and the moon and the stars etc etc 9 

end 

update....  et

编辑:2

添加几个月的伎俩.

现在我只有这个:

insert into my_table
select f1, add_months( f2, 1 ) from my_table where status = etc etc 

谢谢您的帮助.



1> Tony Andrews..:

Oracle有一个内置函数ADD_MONTHS,完全可以:

SQL> select add_months(date '2008-01-31',1) from dual;

ADD_MONTHS(
-----------
29-FEB-2008

SQL> select add_months(date '2008-02-29',1) from dual;

ADD_MONTHS(
-----------
31-MAR-2008

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有