gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 09:41:08 25 4
gpt4 key购买 nike

我的片段中有这个方法

     @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);

}
}

我需要从长日期中选择仅包含日期的所有任务。我需要格式化我的日期吗?有什么简单的方法可以实现吗?

最佳答案

Do i need to format my date?

,您可以从列中提取日期并使用

操作/管理/操作它们
date(substr(the_column,1,10),'unixepoch')

例如,考虑以下内容(选择/选择实际数据可用的示例):-

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

第一个查询结果为:-

enter image description here

shoplistadded 列是以毫秒为单位的日期时间(通过 System.currentTimeMillis() 获取)

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

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

关于java - 如何仅按长 dateInMillis 中的日期从我的数据库中进行选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55982283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com