我建的表
create table Z01_toot(
id number(6) primary key,
c_name varchar2(20),
c_type varchar2(20),
c_date date,
people varchar2(10),
money number(10,2),
states varchar2(20),
res varchar2(50)
);insert into Z01_toot values(id_seq.nextval,'合同1','框架合同',to_date('2010-01-10','yyyy-mm-  dd'),'toot',1200.12,'待归档','这是一个合同');能正常插入,在数据库中用sql语句查c_date 是2011-01-10
可是在jsp页面中查询显示是2011-01-10 00:00:00.0现在的问题是我在jsp页面编辑修改表内容(不改c_date)后,再把数据update回数据库,就提示‘仅能绑定要插入 LONG 列的 LONG 值’
我猜可能是那个‘00:00:00.0’的问题,怎么使jsp页面中也只显示2011-01-10啊,求教啊

解决方案 »

  1.   

    查询的时候使用 TOCHAR(c_date ,'YYYY-MM-DD') 就可以了
      

  2.   


    scott@YPCOST> select sysdate from dual;SYSDATE
    -------------------
    2011-01-12 10:45:35scott@YPCOST> select to_char(sysdate,'yyyymmdd') from dual;TO_CHAR(
    --------
    20110112
      

  3.   

    多谢上面几位哈,现在jsp页面是显示正确了,但是我修改后还是不能update成功啊
    根据id查到部分信息:
    String sql = "select c_name,to_char(c_date,'yyyy-mm-dd'),people,res from Z01_toot where id=?";
    然后再更新:
    String sql="update Z01_toot set c_name=?,to_date(c_date=?,‘yyyy-mm-dd'),people=?,res=?,money=? where id=?";错误提示还是‘仅能绑定要插入 LONG 列的 LONG 值’,纠结啊,是不是update语句有问题啊
      

  4.   

    4楼写错了,set后面是c_date=to_date(?,'yyyy-mm-dd'),不过结果还是那样- -
      

  5.   

    to_date(c_date=?,‘yyyy-mm-dd'),
    --c_date=to_date(?,'yyyy-mm-dd') 
    --引号好用英文的 ?的格式要是'2011-01-12' 这样的
      

  6.   

    ?  你这个传人的值 要跟你的后面的格式匹配'yyyy-mm-dd'  或者你?是什么类型的  后面的格式也得一样
      

  7.   

    哎,我太水了,还是没搞定
    -6,7楼,我好好的对照了代码和插入的值,是没错的现在我感到非常奇怪的一点是,我直接在数据库的控制台用
    update Z01_toot set c_name='genxin',c_date=to_date('2011-1-12','yyyy-mm-dd') where id=3;
    是更新成功的而在jsp页面中
    String sql="update Z01_toot set c_name=?,c_date=to_date(?,'yyyy-mm-dd')where id=?";
    ps = con.prepareStatement(sql);
    ps.setString(1,c_name);
    ps.setString(2,c_date);
    ps.setString(3,id);
    ps.executeUpdate();
    更新失败,提示错误(各变量已经获取表单中的值了,且格式正确的)

      

  8.   


    --你的 c_date 应该是String类型的吧?格式必须是'yyyy-mm-dd'
    --例如:
    String sql="update Z01_toot set c_name=?,c_date=to_date(?,'yyyy-mm-dd')where id=?";
    ps = con.prepareStatement(sql);
    ps.setString(1,c_name);
    ps.setString(2,"2011-01-12");    --注意这里
    ps.setString(3,id);
    ps.executeUpdate();