1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 日期转换--接收日期与数据库存储不兼容问题时间段查询

日期转换--接收日期与数据库存储不兼容问题时间段查询

时间:2021-07-07 00:32:17

相关推荐

日期转换--接收日期与数据库存储不兼容问题时间段查询

一.日期转换--接收日期与数据库存储不兼容问题

问题描述:

页面获取的日期,无法查询或者存储到数据库;

页面获取的格式为“yyyy-MM-dd HH:mm:ss”,数据库数据类型为datetime(“yyyy-MM-dd HH:mm:ss”);

方法:

虽然看起来一样,但是是不兼容的,可以通过format函数将获取的date转化为string类型,再转化为date,就可以存储或查询了;

public void find(Date date1) {SimpleDateFormat sdft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String date1str = sdft.format(date1);//若date1是"yyyy-MM-dd"格式,则//date1str=date1str+" 00:00:00";Date idate = null;try {idate = sdft.parse(date1str);} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();}//String hql = "from Info i where i.idate = ?";List<Info> list = this.getHibernateTemplate().find(hql,idate);}

二.时间段查询

问题描述:

举例,用户提交-06-30 09:00:00的查询时间点,需要返回时间在"-06-29 09:00:00--06-3009:00:00(含)"这一时间段中的所有信息;

方法:

hibernate中的criteria限定条件查询;

Restrictions.gt("idate", from),取大于from(Date)的时间

Restrictions.le("idate",to),取小于等于to(Date) 的时间

public List<Info> findByDate(Date date) {Date date1 = date;long oneDayTime = 1000*3600*24;// 这个date2就是减1天的时间Date date2 = new Date(date1.getTime() - oneDayTime);SimpleDateFormat sdft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String date1str = sdft.format(date1);String date2str = sdft.format(date2);System.out.println(date1str); System.out.println(date2str);Date from=null;Date to=null;try {from = sdft.parse(date2str);to = sdft.parse(date1str);} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();}DetachedCriteria criteria = DetachedCriteria.forClass(Info.class);criteria.add(// 与条件Restrictions.and(// 取大于Restrictions.gt("idate", from),// 取小于等于less than or equalRestrictions.le("idate",to)));List<Info> list = this.getHibernateTemplate().findByCriteria(criteria);return list;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。