OrmLite where子句和SQL之间用java.util.date

sui*_*izo 2 android ormlite

我尝试使用where子句创建一个查询,该子句在日期之间进行过滤.我的查询看起来像

java.util.Date date1 = ...
java.util.Date date2 = ...
where().between("datefield", date1, date2)
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我正在构建我的查询,QueryBuilder我使用selectRaw(...)queryRaw(...).有人可以帮忙吗?

Gra*_*ray 12

是的,这不会起作用,因为在Android下,Date字段被保存为字符串,在使用SQL时无法正确比较between.解决此问题的一种方法是将Date字段存储为long:

@DatabaseField(dataType = DataType.DATE_LONG)
private Date dateField;
Run Code Online (Sandbox Code Playgroud)

这将存储Date作为epoch毫秒长数,这是可比较的和将使用的between.