救急!关于jsp数据库中Date类型的用法?

rox 2001-07-18 11:20:56
小弟正在用jsp编写一个数据库访问和存储页面,可是由于其中的一个字段是日期/时间型的。所以碰到了很多的麻烦,归结如下:
1、通过HTML表单传值时,type="text",我填写的日期就应该是属于String,那么就只能使用request.getParameter了。有没有其他的方法可以使用,使得表单可以直接将Date类型的值,传到jsp页面,那么jsp页面的接受函数又应该是什么呢?
2、数据库中的Date类型读出很方便,可是怎么写入呢?如果,表单只能传递String类型,那么String类型又怎么才能转换成为Date类型,用什么语句才能将他写入数据库呢?
注:将数据库中的Date类型转化为String类型,是一种方法,可是我到书店看过的jsp书,全都对Date类型避而不谈,不知道是不是真的太难了?所以,麻烦各位大侠帮帮小弟,谢谢了!
...全文
425 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
rox 2001-07-21
  • 打赏
  • 举报
回复
我用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"”又可以了,完全正常。请问这是为什么?小弟实在是对数据库了解的太少了,手头上的资料又很有限,希望各位大仙再帮一帮忙。
谢谢!
dragonerfish 2001-07-21
  • 打赏
  • 举报
回复
关注!!!
yelz 2001-07-20
  • 打赏
  • 举报
回复
Date的用处看你怎么使用了,你甚至可以把它完全看成一个字符串,当然,看看数据库文档,
会有一些关于 Date的函数,如 Subdate,to_days等等,
rox 2001-07-19
  • 打赏
  • 举报
回复
<%@ 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);}
%>
我现在还在暂时作更新的页面,可是就是做不好,上面的写法似乎有错,但我经验太少了,请给位大仙指教指教。谢谢了
  • 打赏
  • 举报
回复
同意.
dule_yu 2001-07-18
  • 打赏
  • 举报
回复
页面传递的参数只能用request.getParameter(),而且都是字符串格式,
其实没有关系的,你完全可以将日期设计成字符串处理:
对数据库操作时:
如果是oracle数据库,插入时要用TO_DATE(dateStr,'yyyy-mm-dd')转换
如果是sybase或db2可直接写入如
insert into XXX(DateCol) values('"+dateStr+"')
当然首先是你的dateStr字符串是yyyy-mm-dd格式,这在页面上完全可以控制的到。
所以,不可能从页面直接接收日期型的数据,也不需要将string类型的数据转换成date再写入数据库,就把他当成string处理
dule_yu 2001-07-18
  • 打赏
  • 举报
回复
我刚刚做了一个试验,直接在access中对一个日期型字段进行操作:
结果:
insert into t1 values('2001-01-01')
插入成功
jarodzhao 2001-07-18
  • 打赏
  • 举报
回复
gz
steeven 2001-07-18
  • 打赏
  • 举报
回复
在java版看我的一个jsp+bean例子
rox 2001-07-18
  • 打赏
  • 举报
回复
不好意思,我用的是access,请问有没有办法,或者SQL Server也行

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧