我在java.util.Date
类中添加了自定义类型MainGenerator
的字符串属性很少。
在querybuilder
中如何将这些字符串与ge或le或gt或lt进行比较。
我将db值保存在字符串类型中,我将它们像这样比较
qb.queryBuilder().where(TestDao.Properties.Date_entered.ge(start)).list();
它不起作用。
答案 0 :(得分:2)
如果您使用greenDao,那么在您的MainGenerator中,您必须将日期设为
testdao.addDateProperty("date_entered").notNull();
所以qb.queryBuilder().where(TestDao.Properties.Date_entered.ge(start)).list();
开始应为 java.util.Date 。
答案 1 :(得分:1)
日期持久化为long类型的时间戳。因此,对于查询参数,您还应该使用长值。
答案 2 :(得分:1)
首先在String中解析日期,因为您要以字符串格式在数据库中保存日期。然后查询数据。这是示例代码。
SimpleDateFormat dateFormat;
Calendar calendar = Calendar.getInstance();
//Modify Calendar here according to your requirement.
dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
//Check if you have different date format then replace in above line.
String dateString = dateFormat.format(calendar.getTime());
//Then query your data
qb.queryBuilder().where(TestDao.Properties.Date_entered.ge(dateString )).list();
答案 3 :(得分:0)
您可以将字符串日期转换为毫秒,并可以比较结果的值:
public boolean checkDates(String date1, String date2) {
long milliDate1 = getMilliFromDate(date1);
long milliDate2 = getMilliFromDate(date2);
//Check date according to your requirement and condition
return milliDate1 < milliDate2;
}
public long getMilliFromDate(String dateFormat) {
Date date = new Date();
// "dd/MM/yyyy" this is date format i use you can use your own
//format which you are storing in local database like time stamp "yyyy-MM-dd HH:mm:ss"
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
try {
date = formatter.parse(dateFormat);
} catch (ParseException e) {
e.printStackTrace();
}
return date.getTime();
}