如果日期列介于开始日期和结束日期之间,则选择行 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 标记第一个数据帧中的行

在包含多个开始和日期列表的表中查找日期,如果找到则返回默认值

Laravel - 使用 eloquent 在开始日期和结束日期之间选择行