页面传递的参数只能用request.getParameter(),而且都是字符串格式,
其实没有关系的,你完全可以将日期设计成字符串处理:
对数据库操作时:
如果是oracle数据库,插入时要用TO_DATE(dateStr,'yyyy-mm-dd')转换
如果是sybase或db2可直接写入如
insert into XXX(DateCol) values('"+dateStr+"')
当然首先是你的dateStr字符串是yyyy-mm-dd格式,这在页面上完全可以控制的到。
所以,不可能从页面直接接收日期型的数据,也不需要将string类型的数据转换成date再写入数据库,就把他当成string处理
其实没有关系的,你完全可以将日期设计成字符串处理:
对数据库操作时:
如果是oracle数据库,插入时要用TO_DATE(dateStr,'yyyy-mm-dd')转换
如果是sybase或db2可直接写入如
insert into XXX(DateCol) values('"+dateStr+"')
当然首先是你的dateStr字符串是yyyy-mm-dd格式,这在页面上完全可以控制的到。
所以,不可能从页面直接接收日期型的数据,也不需要将string类型的数据转换成date再写入数据库,就把他当成string处理
结果:
insert into t1 values('2001-01-01')
插入成功
<%@ 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);}
%>
我现在还在暂时作更新的页面,可是就是做不好,上面的写法似乎有错,但我经验太少了,请给位大仙指教指教。谢谢了
会有一些关于 Date的函数,如 Subdate,to_days等等,
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"”又可以了,完全正常。请问这是为什么?小弟实在是对数据库了解的太少了,手头上的资料又很有限,希望各位大仙再帮一帮忙。
谢谢!