我正在尝试从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”:语法错误
并且游标中没有数据,即使我的数据库包含大量尊重这种情况的数据。有人知道我做错了吗?
答案 0 :(得分:2)
您应将日期值用单引号括起来,而不是双引号。像这样:
SELECT * FROM roadmap WHERE lastChangedDate > '2012-01-01 08:24:59'
在您学习的同时,我建议您安装基于PC的SQLite编辑器,例如" SQLite数据库浏览器"您可以在SourceForge上找到它。它比在您的应用中测试更快更容易。我甚至会说所有的数据库开发,测试,查询创建等都应该在你的PC上完成,然后它就是一个复制/粘贴练习,可以将它放到你的应用程序中。
祝你好运。