页面传递的参数只能用request.getParameter(),而且都是字符串格式,
其实没有关系的,你完全可以将日期设计成字符串处理:
对数据库操作时:
如果是oracle数据库,插入时要用TO_DATE(dateStr,'yyyy-mm-dd')转换
如果是sybase或db2可直接写入如
insert into XXX(DateCol) values('"+dateStr+"')
当然首先是你的dateStr字符串是yyyy-mm-dd格式,这在页面上完全可以控制的到。
所以,不可能从页面直接接收日期型的数据,也不需要将string类型的数据转换成date再写入数据库,就把他当成string处理

解决方案 »

  1.   

    不好意思,我用的是access,请问有没有办法,或者SQL Server也行 
      

  2.   

    在java版看我的一个jsp+bean例子
      

  3.   

    我刚刚做了一个试验,直接在access中对一个日期型字段进行操作:
    结果:
     insert into t1 values('2001-01-01')
    插入成功
      

  4.   

    <%@ page language="java" contentType="text/html;charset=GBK" %>
    <%@ page import="java.util.Date" %>
    <%@ page import="java.sql.*" %>
    <%
    try
     {
     java.util.Date date=new java.util.Date();
     String birth=new Timestamp(date.getTime()).toString();
     //out.println(birth);
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
     String url="jdbc:odbc:gm";
     Connection con=DriverManager.getConnection(url,"","");
     String sql="update userinfo1 set birth='"+birth+"' where id=20000602020004"; 
     //out.println(sql);
     PreparedStatement statement=con.prepareStatement(sql);
     statement.executeUpdate(sql);
     con.close();
     }
    catch(Exception e)
    {out.println(e);}
    %>
    我现在还在暂时作更新的页面,可是就是做不好,上面的写法似乎有错,但我经验太少了,请给位大仙指教指教。谢谢了
      

  5.   

    Date的用处看你怎么使用了,你甚至可以把它完全看成一个字符串,当然,看看数据库文档,
    会有一些关于 Date的函数,如 Subdate,to_days等等,
      

  6.   

    我用jsp+Access,搞了几天的Date型的输入,总是不成功。昨天,总算是找到一张SQL Server2000的碟子,把Access的数据库转成SQL Server的就可以使用下面的语句了。
    java.util.Date date=new java.util.Date();
    String birth=new Timestamp(date.getTime()).toString();
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    String url="jdbc:odbc:gm";
    Connection con=DriverManager.getConnection(url,"","");
    PreparedStatement statement=con.prepareStatement("update userinfo1 set birth=? where id=\'"+id+"\'");
    statement.setString(1,birth);
    statement.executeUpdate();
    con.close();
    但是数据库如果是Access的,jsp页面就会报错“标准表达式中数据类型不匹配”。把“java.util.Date date=new java.util.Date(); String birth=new Timestamp(date.getTime()).toString();”两句换成“String birth="1981-01-01"”又可以了,完全正常。请问这是为什么?小弟实在是对数据库了解的太少了,手头上的资料又很有限,希望各位大仙再帮一帮忙。
    谢谢!