我是 Android 开发的完全初学者,遇到了一个相当简单的问题(我猜是 ;))。
我正在尝试从 SQLite(使用 Room)检索过去 30 天的记录。
这是我的查询不起作用 - 它不返回任何记录(来自@Dao 类):
// getting fares for one day (custom-made query)
@Query("SELECT * FROM fare WHERE createdDateDb >=datetime('now', 'now', '-30 day')")
public List<Fare> getFaresOneDay();
但是,这个简单的查询检索所有没有指定日期的记录确实有效:
// getting all fare (via custom-made query)
@Query("SELECT * FROM fare ORDER BY createdDateDb DESC")
public List<Fare> getAllFares();
这是我的 DateTypeConverter 类:
public class DateTypeConverter {
@TypeConverter
public long convertDateToLong(Date date) {
return date.getTime();
}
@TypeConverter
public Date convertLongToDate(long time) {
return new Date(time);
}
}
这是将值分配给 createdDateDb 的方式(在将其插入数据库之前):
fare.setCreatedDateDb(new Date());
这是我的“实体”类:
@Entity(tableName = "fare")
public class Fare {
private String fareValue;
private String typeOfJob;
@PrimaryKey(autoGenerate = true) @NonNull
private Integer jobId;
// dates used for user display
private String createdDate;
private String createdTime;
// date var used for comparisons - not to be displayed for the user
private Date createdDateDb;
}
以及 createdDateDb 的 setter 和 getter
// #6 createdDateDb getter
public Date getCreatedDateDb() {
return createdDateDb;
}
// #6 createdDateDb setter
public void setCreatedDateDb(Date createdDateDb) {this.createdDateDb = createdDateDb; }
我真的很感激一些如何处理它的提示,因为感觉我无处可去。我还尝试了以下方法:
SELECT *
FROM fare
WHERE createdDateDb BETWEEN datetime('now', 'start of month') AND datetime('now', 'localtime')
不幸的是它也不起作用。
POPMUISE
LEATH
相关分类