我尝试使用where子句创建一个查询,该子句在日期之间进行过滤。我的查询看起来像
java.util.Date date1 = ...
java.util.Date date2 = ...
where().between("datefield", date1, date2)
但它不起作用。我正在使用QueryBuilder
构建查询,并使用selectRaw(...)
和queryRaw(...)
。有人可以帮忙吗?
答案 0 :(得分:12)
是的,这不起作用,因为在Android下,Date
字段被保存为字符串,在使用SQL between
时无法正确比较。解决此问题的一种方法是将Date
字段存储为多个字段:
@DatabaseField(dataType = DataType.DATE_LONG)
private Date dateField;
这会将Date
存储为可与between
进行比较且与{{1}}相当的纪元毫秒长数。