0

我正在尝试在 android 的 sqlite 数据库上运行语句...我希望从 lastChagedDate 大于我给出的日期的表中返回一些记录。

假设我有这个:

private String ending_date = "2012-01-01 08:24:59";

roadmapSyncStmt = "SELECT * FROM roadmap WHERE lastChangedDate > '"+ ending_date +"'";

roadmapSyncStmt 是我将在充满日期的 sqlite 表上执行的。该声明将类似于:

SELECT * FROM roadmap WHERE lastChangedDate >"2012-01-01 08:24:59"

当我运行时,我收到此错误:

sqlite 返回:错误代码 = 1,msg = 在“2012”附近:语法错误

即使我的数据库包含大量符合此条件的数据,游标中也没有数据。有人知道我做错了什么吗?

4

1 回答 1

2

您应该将日期值用单引号括起来,而不是双引号。像这样:

SELECT * FROM roadmap WHERE lastChangedDate > '2012-01-01 08:24:59'

在您学习的同时,我建议您安装一个基于 PC 的 SQLite 编辑器,例如您可以在 SourceForge 上找到的“SQLite 数据库浏览器”。它比在您的应用程序中进行测试更快、更容易。我什至会说所有的数据库开发、测试、查询创建等都应该在您的 PC 上完成,然后将其放入您的应用程序几乎是一个复制/粘贴练习。

祝你好运。

于 2012-09-15T17:56:11.240 回答