2011-12-22 83 views
2

我尝试创建一个查询与where子句之间的日期过滤。我的查询看起来像ormLite where子句和SQL之间用java.util.date

java.util.Date date1 = ... 
java.util.Date date2 = ... 
where().between("datefield", date1, date2) 

但它不起作用。我使用QueryBuilder构建查询,并使用selectRaw(...)queryRaw(...)。谁能帮忙?

回答

12

是的,这是不行的,因为在Android下,Date字段被持久化为字符串,当使用SQL between时,它们不能正确比较。解决这个问题的一种方法是你Date场存为多头代替:

@DatabaseField(dataType = DataType.DATE_LONG) 
private Date dateField; 

这将存储Date为毫秒为单位长号码是可比的,并且将与between工作。

+0

与MySql接口时发生的情况相同,我已经设置dataType = DataType.DATE ...你能帮我吗? – 2013-02-10 09:53:09

+0

您能否向ormlite用户邮件列表@BromoProgrammer发布问题? https://groups.google.com/forum/?fromgroups#!forum/ormlite-user – Gray 2013-02-10 17:55:09

+0

@Gray - 只是一个简单的问题:你能想到除了使用OrmLite以外的任何其他格式存储日期的任何理由吗? – jwBurnside 2014-08-02 15:24:25