posts - 21,  comments - 6,  trackbacks - 0

把我费了半个小时解决的垃圾问题写下来.

用JDBC时,PreparedStatement就会用到set()方法,但set进去的则是java.sql.Date类型,而不是java.util.Date类型,问题就出来了,比如当你set进去一个时间(假设时间2006-12-18 15:43:23),如下:

 java.sql.Date today = new java.sql.Date();

我要查在这个时间以前的数据,可结果却返回了17号以前的结果,

在数据库里查也是没有问题的,但问题出在什么地方呢?后来找到的答案就是:通过这种方式java.sql.Date会省略小时/分/秒,转成的SQL会默认为2006-12-18 00:00:00,认为是查2006-12-18 00:00:00之前的结果.就这样才造成了这次头痛的事件,而这一代码还不是本人所写,看别人的代码真是累!

最后只好在时间上加1天,否则就需要用字符串比较.不知道还有其他方法没?
posted on 2006-12-18 18:49 Warren.Wu 阅读(242) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: