【发布时间】:2012-09-13 06:23:21
【问题描述】:
我有一个活动,我将一些信息保存到我的数据库中。 我有两个文本视图,一个用于日期(yyyy-MM-dd),一个用于时间(HH:mm)。 如果我将 datetime 保存为 TEXT,我可以正确排序然后 desc,但是我可以通过 sqlite 查询找到 last/7/30 days 记录吗?此查询的示例何时是 datetime TEXT?
【问题讨论】:
标签: java android sqlite datetime
我有一个活动,我将一些信息保存到我的数据库中。 我有两个文本视图,一个用于日期(yyyy-MM-dd),一个用于时间(HH:mm)。 如果我将 datetime 保存为 TEXT,我可以正确排序然后 desc,但是我可以通过 sqlite 查询找到 last/7/30 days 记录吗?此查询的示例何时是 datetime TEXT?
【问题讨论】:
标签: java android sqlite datetime
首先,您应该计算要分析的日期范围,然后将其边界转换为文本格式(您可以使用一些日期格式实用程序)。然后您应该使用转换后的日期作为参数查询 Db。
假设您想要最近 30 天的列表:
Calendar theEnd = Calendar.getInstance();
Calendar theStart = (Calendar) theEnd.clone();
theStart.add(Calendar.DAY_OF_MONTH, -30);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String start = dateFormat.format(theStart.getTime());
String end = dateFormat.format(theEnd.getTime());
// Now you have date boundaries in TEXT format
Cursor cursor = db.rawQuery("SELECT * FROM table WHERE timestamp BETWEEN "+start+" AND "+end);
【讨论】: