日期如何增加一年

lucky518 2011-02-22 01:30:41
update ndxx set zwrq=to_date('2011-01-01','yyyy-mm-dd')
更新日期的时候 我希望时间加一年 怎么写
就是我做年度结转的时候 我希望 2011-01-01 变成 2012-01-01
这个sql 怎么写
...全文
1399 44 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
44 条回复
切换为时间正序
请发表友善的回复…
发表回复
dbadao 2011-03-09
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 zhuomingwang 的回复:]
SQL code
--也可以这样
select sysdate,
sysdate + interval '1' year add_year,
sysdate + interval '1' month add_month,
sysdate + interval '1' day add_day,
sysdate + inter……
[/Quote]
interval 是做什么的?
范仁军 2011-03-09
  • 打赏
  • 举报
回复
1楼就已经是正确答案了
补interval
Well 2011-03-08
  • 打赏
  • 举报
回复
add_months就可以
Jack_Skipper 2011-03-08
  • 打赏
  • 举报
回复
select add_months(sysdate,12) as setdate from dual;
迷失的空间 2011-03-07
  • 打赏
  • 举报
回复
这个支持农历么?
农历有时候一年不是12个月。。。。。。
玉凌霄 2011-03-04
  • 打赏
  • 举报
回复
加个decode 区分平年和闰年也行 不过麻烦 有ADD_MONTH现成的 就用
hairoot 2011-03-04
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 zhuomingwang 的回复:]
SQL code
--也可以这样
select sysdate,
sysdate + interval '1' year add_year,
sysdate + interval '1' month add_month,
sysdate + interval '1' day add_day,
sysdate + inter……
[/Quote]

这个真不错。
1 改成 -1 也可以呢。呵呵。学习了。
sforat 2011-03-03
  • 打赏
  • 举报
回复
update a t set t.sj = add_months(t.sj,12) where t.id = '???'
carefree_fish 2011-03-02
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 zhuomingwang 的回复:]
SQL code
--也可以这样
select sysdate,
sysdate + interval '1' year add_year,
sysdate + interval '1' month add_month,
sysdate + interval '1' day add_day,
sysdate + inter……
[/Quote]

真的可以呢。。真神奇啊!
SKYingX 2011-03-02
  • 打赏
  • 举报
回复
高手,学习了
[Quote=引用 17 楼 zhuomingwang 的回复:]
SQL code
--也可以这样
select sysdate,
sysdate + interval '1' year add_year,
sysdate + interval '1' month add_month,
sysdate + interval '1' day add_day,
sysdate + inter……
[/Quote]
dandan0901 2011-03-01
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 jiebing 的回复:]
select add_months(sysdate,12) from dual;
select sysdate,
sysdate + interval '1' year add_year,
sysdate + interval '1' month add_month,
sysdate + interval '1' day add_day,
sysdate + interv……
[/Quote]


学习了~~
hello926 2011-03-01
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 zhuomingwang 的回复:]
SQL code
--也可以这样
select sysdate,
sysdate + interval '1' year add_year,
sysdate + interval '1' month add_month,
sysdate + interval '1' day add_day,
sysdate + inter……
[/Quote]

學習了。
softmaker_tao 2011-03-01
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 zhuomingwang 的回复:]
SQL code
--也可以这样
select sysdate,
sysdate + interval '1' year add_year,
sysdate + interval '1' month add_month,
sysdate + interval '1' day add_day,
sysdate + inter……
[/Quote]

学习了
yuyeyi 2011-03-01
  • 打赏
  • 举报
回复
add_months()正确
yaohaiyang 2011-03-01
  • 打赏
  • 举报
回复
这个真心不难。。。
x_smooth 2011-02-28
  • 打赏
  • 举报
回复
select add_months(to_date('2011-02-28','yyyy-mm-dd'),12) from dual
大家看看这个结果,好像不行。。。。
蛋黄车 2011-02-28
  • 打赏
  • 举报
回复
sysdate + interval '1' year add_year,

select add_months(sysdate,12) from dual;

这两种方法是有区别的。第一种方法直接加年的方法。无脑
第二种方法是经过运算的,能够避免一些不必要的意外。

以2011-02-28为例:
第一个方法的结果为 2012-02-28
第二个方法的结果为 2012-02-29

以2012-02-29为例:
第一个方法的结果会出现错误。因为在2013年没有2月29号这一天
第二个方法的结果为 2013-02-28
孑冰 2011-02-28
  • 打赏
  • 举报
回复
select add_months(sysdate,12) from dual;
select sysdate,
sysdate + interval '1' year add_year,
sysdate + interval '1' month add_month,
sysdate + interval '1' day add_day,
sysdate + interval '1' hour add_hour,
sysdate + interval '1' minute add_minute,
sysdate + interval '1' second add_second
from dual;
这样真的可以,学习了。。。这些都是好方法呀。。。收集了
孙成 2011-02-27
  • 打赏
  • 举报
回复
add_months(sysdate,12)
lg_asus 2011-02-26
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 zhuomingwang 的回复:]

SQL code
--也可以这样
select sysdate,
sysdate + interval '1' year add_year,
sysdate + interval '1' month add_month,
sysdate + interval '1' day add_day,
sysdate + interval ……
[/Quote]

這樣也可以啊,學習了
加载更多回复(20)

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧