如果日期列介于开始日期和结束日期之间,则选择行 FMDB 请求
Posted
技术标签:
【中文标题】如果日期列介于开始日期和结束日期之间,则选择行 FMDB 请求【英文标题】:Select Row if date Column is Between start and end date FMDB Request 【发布时间】:2016-09-21 01:09:03 【问题描述】:我正在尝试为我的 Objective C 项目中的 FMDB 编写一个 SQL 查询。
我的表由 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 两者都在该列的数据库表中。
我追求的结果是输出中包含开始日期和结束日期之间的所有值。
【问题讨论】:
我猜这不是您向我们展示的那一行导致了这个错误。查找包含TRUNCATE
sql 命令的查询
【参考方案1】:
尝试在 ? 的两边加上一个单引号 '。像这样:
FMResultSet * result = [database executeQuery:@"SELECT * FROM mytablename WHERE date BETWEEN '?' AND '?' ", lstartDate, lendDate];
【讨论】:
迈克,只是一个您可以提供帮助的后续问题,我的查询不返回任何值,但是开始日期和结束日期都出现在日期列中。为什么它不会返回日期? 我有点困惑,为什么您在表本身中有开始和结束日期,当然您只会在表中有一个日期,然后在该日期运行查询。您正在执行的查询正在查找名为“日期”的列并返回“日期”在指定日期之间的行。我第一次没听懂,因为我只看了你的语法。以上是关于如果日期列介于开始日期和结束日期之间,则选择行 FMDB 请求的主要内容,如果未能解决你的问题,请参考以下文章
在插入 SQLite 之前检查表 B 中的日期是不是介于表 A 中的日期之间
如果日期介于第二个数据帧中的两个日期之间,则 r 标记第一个数据帧中的行