求助高手:我用JAVA将文本框中得到的字符转换成日期后写入数据库数据出错!

ymqdcpy 2007-11-16 08:48:57
SimpleDateFormat df=new SimpleDateFormat("yy-MM-dd");

java.util.Date cDate=df.parse(comedate.getText()); //comedate是jtextfield对象

java.sql.Date cd=new java.sql.Date(cDate.getTime());

sql="update [eatperson] set comedate="+cd; //这里的comedate是数据库中一个datetime型的字段

//还有很多关于对文本框中的字符串进行日期转换的方法都用过,还是会出错.

写入数据库后,没有提示出错,但添加到数据库里的日期与我在文本框中所输入的日期不一样.

比如:输入 2007-12-12 添加到数据库后就变成了 1905-06-07
输入 1111-11-11 添加到数据库后就变成了 1902-12-26
输入 0000-00-00 都变成了 1899-11-23


真是头痛呀,各位大哥帮帮忙吧,谢谢!!
...全文
198 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wrong1111 2007-11-18
  • 打赏
  • 举报
回复
不同的数据库对日期型的处理不一样.我们用的是ORACLE9I.设置时间为DATETIME型.在插入时,要用到TO_DATE
ymqdcpy 2007-11-18
  • 打赏
  • 举报
回复
怎么都没有人呀?我先顶一下嘛,帮帮忙,讲解一下嘛!
ymqdcpy 2007-11-17
  • 打赏
  • 举报
回复
问题我发现了!不过这个问题的解决方案却出乎我的意料:"update [eatperson] set comedate='"+cd+"'";

要这样写入数据库才不会出错,但我的comedate字段明明是日期型呀?怎么这样都可以解决??

如果我要利用这个字段进行日期上的运算会不会出错呢?

请大哥们多多指点!!
CaiKanXP 2007-11-16
  • 打赏
  • 举报
回复
楼上做法看起来不错,楼主你那样做是把Date类型的数据当字符串处理了,最后拼出来的是一条错误的字符串,不信你打印出来拷到数据库直接执行一下试试?
陈宝峰 2007-11-16
  • 打赏
  • 举报
回复
String sql = "update [eatperson] set comedate=?";
PreparedStatement pSta = connection.prepareStatement(sql);
pSta.setDate(1, cd);

pSta.executeUpdate();

祝你成功!

62,623

社区成员

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

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