2016-09-21 103 views
0

我想为我的Objective C项目中的FMDB编写一个SQL查询。如果日期列选择行如果日期列之间开始和结束日期FMDB请求

我的表格由id,num_of_items,startDate,endDate组成。

我的查询看起来像这样

FMResultSet * result = [database executeQuery:@"SELECT * FROM mytablename WHERE date BETWEEN ? AND ? ", lstartDate, lendDate]; 

运行此代码我收到以下错误的应用程序崩溃后

[1210:2007096] DB Error: 1 "near "TRUNCATE": syntax error" 
[1210:2007096] DB Query: TRUNCATE mytablename 

日期列包含长值然而,当我已签两lstartDate和lendDate都在该列的数据库表中。

我之后的结果是输出中包含开始日期和结束日期之间的所有值。

+0

我想这不是你向我们显示的那条线是产生这个错误。查找包含'TRUNCATE' sql命令的查询 – RiggsFolly

回答

1

试着把单引号放在?的两边。像这样:

FMResultSet * result = [database executeQuery:@"SELECT * FROM mytablename WHERE date BETWEEN '?' AND '?' ", lstartDate, lendDate]; 
+0

这工作!谢谢 – HurkNburkS

+0

Mike,只是后续问题,您可能可以提供帮助,我的查询不会返回任何值,但是开始日期和结束日期都显示在日期列中。为什么它不会返回日期? – HurkNburkS

+0

我有点困惑,为什么你在表本身有开始和结束的日期,当然你只会在表中有一个日期,然后在该日期运行查询。您正在执行的查询是查找名为'date'的列,并返回'date'在指定日期之间的行。我第一次没有注意到,因为我只是看着你的语法。 – Mike

相关问题