我试图在mssql db的特定日期范围之间获取数据。但什么都不回报。我在stackoverflow上找到了一个解决方案,但它无法正常工作。
这就是我所做的:
这是实体类的日期字段:
@Basic(optional = false)
@Column(name = "tarih")
@Temporal(TemporalType.TIMESTAMP)
@DateBridge(resolution = Resolution.MILLISECOND)
private Date tarih;
这就是我试图在特定日期之间取得日期的方式:
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Calendar cal = Calendar.getInstance();
Calendar cal2 = new GregorianCalendar();
cal2.setTime(new Date(114, 12, 15, 3, 4,4));
System.out.println(dateFormat.format(cal.getTime()));
System.out.println(dateFormat.format(cal2.getTime()));
TermRangeQuery luceneRangeDateQuery = newStringRange("tarih", DateTools.dateToString(cal2.getTime(), DateTools.Resolution.MILLISECOND),
DateTools.dateToString(cal.getTime(), DateTools.Resolution.MILLISECOND), true, true);
org.hibernate.Query fullTextQuery = fullTextSession.createFullTextQuery(luceneRangeDateQuery);
List<Satislar> kayitliSatislar = fullTextQuery.list();
这是db记录,类型是datetime:
这是输出这两行和查询发送的:
System.out.println(dateFormat.format(cal.getTime()));
System.out.println(dateFormat.format(cal2.getTime()));