我在android中使用sqlite有一个本地数据库,我使用的是活动的android,我的表pojo是这样的:
@Column(index = true, unique = true , onUniqueConflict = Column.ConflictAction.REPLACE)
public long taskId;
@Column( index = true)
public String taskIdno;
@Column()
public String taskDescription;
@Column()
public String taskTypeId;
@Column()
public String customerName;
@Column()
public String customerContact;
@Column()
public String address;
@Column(index = true)
public int status;
@Column()
public Date startSchedule;
@Column()
public int first_visit;
@Column()
public String coordinates;
@Column()
public int radius;
@Column()
public long location_type_id;
@Column()
public long duration;
@Column()
public long taskType_id;
我的问题是我今天的查询不起作用,或者这里有一些我遗漏的东西。
public static List<AATask> allTaskOrderedByDate(String asc_desc){
From from = new Select().from(AATask.class).where("strftime('%Y-%m-%d', startSchedule ) = strftime('%Y-%m-%d' , DATE('now'))").orderBy("startSchedule ".concat(asc_desc));
Log.w(TAG , from.toSql());
return from.execute();
}
startSchedule转换为timeInMilliseconds(如果我错了,请更正我)默认为活动的android Date对象,今天如何获取查询?
答案 0 :(得分:1)
您的查询应该是这样的:
select * from <table> where <date_col> = current_date
SQLite允许选择当前日期,时间和时间戳,如下所示:
select current_date, current_timestamp, current_time from <table>
上述查询的输出将如下:
"2015-11-04","2015-11-04 04:08:47","04:08:47"
如果您将日期存储为整数或unix时期,请执行以下操作: 1.获取JAVA中的当前时间(以毫秒为单位)。可以说它是current_time_in_mill
然后使用以下查询
select date(current_time_in_mill, 'unixepoch') from <table>;
示例请尝试:select date(1092941466, 'unixepoch')
答案 1 :(得分:0)
如果您将日期存储为INTEGER,请尝试以下操作:
select * from my_table where date(dateColumn) = date('now');