FMDB日期比较不起作用

时间:2017-01-27 02:11:16

标签: ios objective-c sqlite fmdb

我正在尝试使用FMDB在sqlite中的表上执行日期比较查询,但不知何故它没有返回任何数据。尝试了不同的东西,但没有一个有效。

以下是我的表创建代码

NSString *sql = [[NSString alloc] initWithFormat:@"CREATE VIRTUAL TABLE IF NOT EXISTS %@ USING fts4(%@, %@, %@, %@);",
                             myTable,
                             column1,
                             column2,
                             column3,
                             dateColumn];
BOOL success = [db executeUpdate:sql];

这是我将数据插入其中的方式

[db setDateFormat:[FMDatabase storeableDateFormat:@"yyyy-MM-dd HH:mm:ss"]];
NSString *sql2 = [NSString stringWithFormat:@"INSERT INTO %@ (%@, %@, %@, %@, %@, %@, %@, %@) VALUES (?, ?, ?, ?);",
                          myTable,
                          column1,
                          column2,
                          column3,
                          dateColumn];
BOOL insertSucceeded = [db executeUpdate:sql2, someObject.value1, someObject.value2, someObject.value3, someObject.date];

最后是获取查询

NSString *date = [[FMDatabase storeableDateFormat:@"yyyy-MM-dd HH:mm:ss"] stringFromDate:[NSDate date]];
NSMutableString *dateMatchQuery = [NSMutableString stringWithFormat:@"%@ < %@", dateColumn, date];
NSString *sql = [NSString stringWithFormat:@"SELECT *, snippet(%1$@, '%2$@', '%3$@', '...') AS %4$@ \
                 FROM %1$@ \
                 JOIN ( \
                 SELECT docid, rank(matchinfo(%1$@), %5$@) AS rank \
                 FROM %1$@ \
                 WHERE %1$@ MATCH ? \
                 ORDER BY rank DESC \
                 ) AS ranktable USING(docid) \
                 WHERE %1$@ MATCH ? \
                 ORDER BY ranktable.rank DESC, %6$@ DESC LIMIT %7$lu OFFSET 0",
                 myTable,
                 snippitStartTag,
                 snippitEndTag,
                 columnSnippit,
                 columnRankValues,
                 columnFiled,
                 (unsigned long)kDefaultSearchHitsLimit];

FMResultSet *resultSet = [db executeQuery:sql, dateMatchQuery, dateMatchQuery];

非常感谢任何帮助。

0 个答案:

没有答案