日期:2014-05-17  浏览次数:20743 次

oracle 日期转化
请大侠们帮帮忙,把这个错误找出来一下 弄了个把小时了 

后台oracle sql语句
sql.append("insert into tbl_wzgl_wz(wzid,wzname,style,memo,adate,userid,gdeptid,deviceclassid)");
sql.append(" values(seq_wzgl_wzid.nextval,'"+wzname+"','"+style+"','"+memo+"','"+to_date(adate,'yyyy-mm-dd')+"',"+userid+","+gdeptid+","+deviceclassid+")");


报 to_date(adate,'yyyy-mm-dd')中的 yyyy-mm-dd 无效格式 跪求指导····


------解决方案--------------------
sql.append(" values(seq_wzgl_wzid.nextval,'"+wzname+"','"+style+"','"+memo+"',to_date(adate,'yyyy-MM-dd'),"+userid+","+gdeptid+","+deviceclassid+")");
试试
------解决方案--------------------
'"+to_date(adate,'yyyy-mm-dd')+"'
这个字段不需要 ''吧

------解决方案--------------------
你改成to_char(adate,'yyyy-mm-dd')试试
------解决方案--------------------
adate是什么格式的 如果是字符串格式的可以 如果是日期格式的用 to_char
------解决方案--------------------
char转date用 to_date ,date转 char 用to_char
------解决方案--------------------
测试一下 to_date('','yyyyMMdd');
不知道为什么你的不行
可以to_date(to_char(,'yyyyMMdd'),'yyyyMMdd');
自己多做几个测试 就弄明白了
------解决方案--------------------
'"+to_date(adate,'yyyy-mm-dd')+"'
这样转了之后还是字符串。

改成这样"+to_date(adate,'yyyy-MM-dd')+"
------解决方案--------------------
+"','"+to_date(adate,'yyyy-mm-dd')+"',

这个有问题啊 
改为 +"',"+to_date(adate,'yyyy-mm-dd')+",

to_date 转成时间型的 不能加‘’
------解决方案--------------------
'yyyy-MM-dd' 中要用MM 才是月, mm 好像是秒
------解决方案--------------------
YYYY-MM-DD
------解决方案--------------------
to_date(to_char(sysdate,'YYYYMMDD'),'YYYY-MM-DD')
------解决方案--------------------
yyyy-MM-dd
------解决方案--------------------
是这样的,sql语句不会将使用加拼接的字符串转义成具体的方法,所以to_data()无法识别,建议使用?传参,并且可以防止sql注入...