如何仅按日期从 long dateInMillis 中从我的数据库中进行选择?

how to make selection from my database only by date from long dateInMillis?

我的片段中有这个方法

     @Override
public void findTasksByDate(long date) {
    adapter.removeAllItems();


   List<ModelTask> tasks = new ArrayList<>();
    tasks.addAll(activity.dbHelper.query().getTasks(DBHelper.SELECTION_LIKE_DATE + " AND "
                    + DBHelper.SELECTION_STATUS + " OR " + DBHelper.SELECTION_STATUS,
            new String[]{"%"+ date + "%", Integer.toString(ModelTask.STATUS_CURRENT),
                    Integer.toString(ModelTask.STATUS_OVERDUE)}, DBHelper.TASK_DATE_COLUMN));
    for (int i = 0; i < tasks.size(); i++) {
        Log.d("data", "Title = " + tasks.get(i).getTitle());
        addTask(tasks.get(i), false);

    }
}

我需要 select 所有只有长日期的任务。我需要格式化我的日期吗?有什么简单的方法可以做到吗?

Do i need to format my date?

,您可以使用

从列中提取日期并 manipulate/manage/manipulate 它们
date(substr(the_column,1,10),'unixepoch')

例如考虑以下内容(示例chosen/selected因为真实数据可用):-

SELECT 
    _id, 
    shoplistdateadded, 
    date(substr(shoplistdateadded,1,10),'unixepoch') AS converted_date 
FROM shoplist;
SELECT 
    _id, 
    shoplistdateadded, 
    date(substr(shoplistdateadded,1,10),'unixepoch') AS converted_date 
FROM "shoplist" 
WHERE date(substr(shoplistdateadded,1,10),'unixepoch') 
    BETWEEN date('2019-04-01') 
        AND date('2019-04-30')
;

第一个查询结果为:-

shoplistadded 列是带毫秒的日期时间(通过 System.currentTimeMillis() 获得)

converted_date 列是 shoplistadded 列中删除毫秒并提取日期 (yyyy- MM-DD) 通过使用 SQlite date function。也就是说,它传递了前 10 位数字(一种可识别的格式),因此 returns 只是日期。

第二个查询使用此查询仅 select 2019 年 4 月的行,即不返回 2019-05-02 行,其他 3 行。