如何在 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);
我正在做一个项目,现在一直卡在一个奇怪的阶段
我知道我们可以执行任何与数据库相关的查询,我们可以使用:
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);