【发布时间】:2011-05-25 10:47:50
【问题描述】:
我有一个参数,用户可以在其中选择应存储数据的时间段。
我在days 变量中读到它。日期和时间,记录添加到数据库时存储在KEY_DATE_ADDED中,它的创建方式如下:
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // sql date format
Date date = new Date();
initialValues.put(KEY_DATE_ADDED, dateFormat.format(date));
然后我执行以下操作:
mDb.delete(DATABASE_TABLE,
"date(now) > date(" + KEY_DATE_ADDED + ",+" + days + " days)",
null);
它不起作用。实际查询(其中部分)如下所示:
日期(现在)> 日期(添加日期,+10 天)
这里有什么不正确的地方?看起来应该在这里而不是date_added。
我想使用SQL data formatting 来避免多次重新格式化日期。
是否有任何用于 Android 数据库的 GUI 来测试对实际数据的 SQL 查询?
【问题讨论】:
-
好的,我应该使用
date('now') > date('date_added','+10 days')- 现在可以了。所以,悬而未决的问题只是关于 GUI。 -
您可以使用
adb pull /data/data/<namespace>/databases/<dbName>从模拟器中提取数据库。我使用 Firefox 插件“SQLite Manager”来查看或编辑数据库。 -
我为测试查询所做的工作以及使用 SQLiteBrowser 进行的操作:sourceforge.net/projects/sqlitebrowser 这很容易使用,您只需从设备(模拟器或实际手机)中提取数据库,然后去野外。我现在不在我的工作站,但是通过界面提取数据库相当简单。模拟器/设备实例将 SQLite3 数据库存储在文件夹 /data/data/
/databases/ 中。也看到这个问题:stackoverflow.com/questions/3292818/…