请问有没有直接把date放在ADD_MONTHS里的办法?

ls_temp_sql3:=' and paytime>=ADD_MONTHS('||sign_time_t||',-('||fetch_record.rule_year_bound||'*12)) ';
ls_temp_sql2:=' and paytime>=ADD_MONTHS(to_date(to_char('||sign_time_t||',''yyyy-mm-dd''),''yyyy-mm-dd''),-('||fetch_record.rule_year_bound||'*12)) ';
现在sign_time_t这个参数是date型的,我是从“2008-08-03”这样的字符串转过来的,然后放在那个语句里就不行 执行不过去,报错。
上面的两句都不行,收件人sql语句的话 那个参数被赋予了 03-8月 -09 这样的值,我将sign_time_t 写死为sysdate就没有问题
哪位帮帮我 这个参数应该怎么放进去啊 谢谢
我是有游标来执行的
直接放to_date('date_str','yyyy-mm-dd') 这样就可以,不过我现在是要先把date_str加上一年 然后放在这!!用笨的方法就是 先转成date然后再加一年,再转成str 放在将to_date('str','yyyy-mm-dd')放在ADD_MONTHS第一个参数里,这样麻烦 可不可以直接把date放在ADD_MONTHS里的办法啊?

繁星coding
浏览 168回答 2
2回答

缥缈止盈

你的写法不对,sign_time_t赋值给字符串变量时候被自动转换成字符串了,你用了||连接符啊必须加to_date再转换一次吧

慕后森

ADD_MONTHS(to_date(sign_time_t,'yyyy-mm-dd'),-(fetch_record.rule_year_bound*12))直接这样试试PS:fetch_record.rule_year_bound*12 什么意思?
打开App,查看更多内容
随时随地看视频慕课网APP