如何在 android 中应用 SELECT date('now') 查询?

How to apply SELECT date('now') query in android?

我正在做一个项目,现在一直卡在一个奇怪的阶段

我知道我们可以执行任何与数据库相关的查询,我们可以使用:

Cursor cursor = db.rawQuery("SELECT * FROM table_name", null);

但现在我想执行这个查询:

"SELECT strftime('%s','now','-2 day')"

一般就是上面的查询returns 前一天的unixepoch时间.

有谁知道我该怎么做?

Date date = new Date();

将 return 当前日期,如果您随后减去 X 天数,则将该日期解析为具有所需格式的字符串。您可以使用 SimpleDateFormat:

方法执行此操作
String newDate = new SimpleDateFormat(pattern).format(date);

模式可以是这样的"dd-MM-yyyy"

然后,您可以将所述日期添加到您的查询中。

您将像处理任何其他查询一样处理此查询:

Cursor cursor = db.rawQuery("SELECT strftime('%s','now','-2 day')", null);
try {
    if (cursor.moveToFirst()) {
        long seconds = cursor.getLong(0);
        ...
    } else {
        // cannot happen with this query
    }
} finally {
    cursor.close();
}

如果你想通过名称访问该列(如果你只有一个列,这是完全没有意义的),你可以给它一个别名:

cursor = db.rawQuery("SELECT strftime(...) AS s", null);
cursor.getColumnIndexOrThrow("s");  // returns zero
...

请注意,对于 return 单个值的查询,有 helper function:

long seconds = DatabaseUtils.longForQuery(
                   db, "SELECT strftime('%s','now','-2 day')", null);