今天如何在sqlite中查询

时间:2015-11-04 03:51:30

标签: android sqlite activeandroid

我在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对象,今天如何获取查询?

2 个答案:

答案 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');