SQL语句如何写? select to_date('2003-02-01','yyyy-mm-dd')+5*365+1 from dual;考虑到闰年,赫赫 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select add_months(a,5*12) from dual; select (to_date('2003-02-01','yyyy-mm-dd')+60) t_date from dualor select (to_date(to_char('2003-02-01','yyyy-mm-dd'),'yyyy')+5) t_date from dual select (to_date('2003-02-01','yyyy-mm-dd')+60) t_date from dual可能有问题,改成select (to_date(to_char('2003-02-01','yyyy-mm'),'yyyy-mm')+5) t_date from dual zgh2003(世纪飞扬)的三条语句均有问题。1、select (to_date('2003-02-01','yyyy-mm-dd')+60) t_date from dual;可执行,但是是加了60天SQL> select (to_date('2003-02-01','yyyy-mm-dd')+60) t_date from dual;T_DATE----------02-4月 -032、select (to_date(to_char('2003-02-01','yyyy-mm-dd'),'yyyy')+5) t_date from dual;无法执行,怎么能对字符串再转化为字符串呢??而且就算能用某些方式来+5计算,会得到什么呢? 1* select (trunc(to_date('2003-02-01','yyyy-mm-dd'),'yyyy')+5) t_date from dualSQL> /T_DATE----------06-1月 -03他不会如你所愿的在年上+5,而是把年变为该年的第一天,再加5运算。3、select (to_date(to_char('2003-02-01','yyyy-mm'),'yyyy-mm')+5) t_date from dual这个当然也是同样的问题。希望zgh2003(世纪飞扬) 同学能在回答别人问题之前,先测试一下,良好的对待问题的态度,对自己开发项目也有好处,你觉得呢,呵呵? 用select to_date((to_number(to_char(mydate,'yyyy'))+5)||to_char(mydate,'mmdd'),'yyyymmdd') from dual; 另外,可以省去to_number的转换,oracle自动完成的。select to_date((to_char(mydate,'yyyy'))+5||to_char(mydate,'mm')+5||to_char(mydate,'dd'),'yyyymmdd') from dual;SQL> select to_date(to_char(sysdate,'yyyy')+5|| 2 to_char(sysdate,'mm')+5||to_char(sysdate,'dd'),'yyyymmdd') from dual;TO_DATE(T---------08-SEP-09SQL> To:snowy_howe(天下有雪)多谢,并接受你的批评。当时确实没有经过测试,太主观了,建议楼主结贴时不要给我的回贴给分,以示对其他老师的尊重,多谢! 可以考虑以下语句:SQL> select add_months(to_date('2003-02-01','yyyy-mm-dd'),60) Test_date 2 from dual;TEST_DATE-----------2008-2-1如果是5年零3个月:SQL> select add_months(to_date('2003-02-01','yyyy-mm-dd'),63) Test_date 2 from dual; TEST_DATE-----------2008-5-1 sql 中如何将1970年以来的秒转换成年月日格式的日期,谢谢 头痛怎么实现oralce数据库间数据同步,高手们请指点 大家帮忙看看这段SQL吧,有些地方不明白 oracle定时job问题,求助 ORA-12571:TNS:包写入程序失败?是什么原因 如何防止有重复记录? ora9i安装问题,单击下一步就没了,怎么回事啊? 向大侠指教Oracle8i的问题 高手请帮我解决这个问题:ora-00265错误 oracle apex 新编了个报表系统,能实现分层次填报和汇总。感觉apex挺好的。感兴趣的可以交流一下。 日期比较 请教:如何获得最近一次操作所影响的行数。
or
select (to_date(to_char('2003-02-01','yyyy-mm-dd'),'yyyy')+5) t_date from dual
可能有问题,改成
select (to_date(to_char('2003-02-01','yyyy-mm'),'yyyy-mm')+5) t_date from dual
1、select (to_date('2003-02-01','yyyy-mm-dd')+60) t_date from dual;
可执行,但是是加了60天
SQL> select (to_date('2003-02-01','yyyy-mm-dd')+60) t_date from dual;T_DATE
----------
02-4月 -03
2、select (to_date(to_char('2003-02-01','yyyy-mm-dd'),'yyyy')+5) t_date from dual;
无法执行,怎么能对字符串再转化为字符串呢??
而且就算能用某些方式来+5计算,会得到什么呢?
1* select (trunc(to_date('2003-02-01','yyyy-mm-dd'),'yyyy')+5) t_date from dual
SQL> /T_DATE
----------
06-1月 -03
他不会如你所愿的在年上+5,而是把年变为该年的第一天,再加5运算。
3、select (to_date(to_char('2003-02-01','yyyy-mm'),'yyyy-mm')+5) t_date from dual
这个当然也是同样的问题。希望zgh2003(世纪飞扬) 同学能在回答别人问题之前,先测试一下,良好的对待问题的态度,对自己开发项目也有好处,你觉得呢,呵呵?
select to_date((to_number(to_char(mydate,'yyyy'))+5)||to_char(mydate,'mmdd'),'yyyymmdd') from dual;
2 to_char(sysdate,'mm')+5||to_char(sysdate,'dd'),'yyyymmdd') from dual;TO_DATE(T
---------
08-SEP-09SQL>
多谢,并接受你的批评。
当时确实没有经过测试,太主观了,
建议楼主结贴时不要给我的回贴给分,以示对其他老师的尊重,
多谢!
SQL> select add_months(to_date('2003-02-01','yyyy-mm-dd'),60) Test_date
2 from dual;TEST_DATE
-----------
2008-2-1如果是5年零3个月:
SQL> select add_months(to_date('2003-02-01','yyyy-mm-dd'),63) Test_date
2 from dual; TEST_DATE
-----------
2008-5-1