java - 当日期时间存储为文本时,如何查找 sqlite 数据库的最后/7/30 天记录?

标签 java android sqlite datetime

我有一个 Activity ,将一些信息保存到我的数据库中。 我有两个 TextView ,一个用于日期 (yyyy-MM-dd),一个用于时间 (HH:mm)。 如果我将日期时间保存为文本,我可以正确排序然后降序,但是我可以使用 sqlite 查询找到最近/7/30 天的记录吗?此查询的示例何时为日期时间文本?

最佳答案

首先,您应该计算要分析的日期范围,然后将其边界转换为文本格式(您可以使用一些日期格式实用程序)。然后您应该以转换后的日期作为参数查询数据库。

假设您想要最近 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);

关于java - 当日期时间存储为文本时,如何查找 sqlite 数据库的最后/7/30 天记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12400528/

相关文章:

android - 单击关闭按钮后如何关闭通知对话框,而不调用任何 Activity

ios - 将数据写入 sqlite xCode

java - 使用 jackson 将 json 字符串映射到对象将抛出 MismatchedInputException

JavaFX Applet 网页刷新和关闭通知

java - 更改 JPanel 默认图形

java - 安卓 & 蓝牙 & Arduino

java - 如何从 Android 向 .NET 服务器发出 HTTPS Post 请求?

mysql - 关于重复键更新 sqlite FMDB

python - sqlite3 连接 python 完整路径失败,在命令行中工作

Java - 将带有列表变量的对象转换为对象列表