我有一个日期“26/12/2007”的Date对象,我想在MySQL数据库“26/12/2007 12:00:00”中与我的日期进行比较。就像我发送日期“26/12/2007”一样,它应该根据MySQL数据库中的日期检索值。
如果我删除此“12:00:00”,它会起作用,但如果我添加“12:00:00” - 则不会产生任何结果。
我正在使用Hibernate Criteria,如
criteria.add(Restrictions.like("dateinsql", date));
我尝试使用
criteria.add(Restrictions.like("dateinsql", date,MatchMode.AnyWhere));
但它仅适用于 String 而非日期。
任何解决方案?
答案 0 :(得分:0)
基本上你需要重新格式化日期变量的模式,即根据指定的日期模式获取其字符串格式,然后将其转换回日期对象。"dd MMM yyyy"
是适用于休眠的格式。
试试这个: -
GregorianCalendar calendar = new GregorianCalendar();
calendar.setTime(your_input_date);
calendar.add(Calendar.DATE, 1); // this is needed to if you want to deal with 12 hrs difference.
SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy");
Date formattedDate = sdf.parse(org.apache.commons.lang.time.DateFormatUtils.format(calendar.getTime(),"dd MMM yyyy"));
使用此格式化日期
criteria.add(Restrictions.like("dateinsql", formattedDate ));
应该可以正常工作。