在 SQLite 中获取日期范围之间的数据

Posted

技术标签:

【中文标题】在 SQLite 中获取日期范围之间的数据【英文标题】:Get data between date range in SQLite 【发布时间】:2017-02-16 12:57:40 【问题描述】:

我正在尝试获取日期范围之间的数据。 日期在我的数据库中保存为文本(dd-MM-YYYY 格式) 当我触发以下查询结果时为空。

SELECT * FROM appointment_table WHERE date BETWEEN cast( '08-02-2017' as datetime ) AND cast( '16-02-2017' as datetime ) AND barber_id = 36

当日期以文本格式保存时,无论日期格式如何,获取日期范围之间数据的正确方法如下

SELECT * FROM appointment_table WHERE date BETWEEN '08-02-2017' AND '16-02-2017' AND barber_id = 36

【问题讨论】:

您将范围转换为日期时间,但日期列仍然是文本。可能没有意义 看这个话题的回复:***.com/questions/14207494/… 我认为您需要将日期更改为“2017-02-08” @MaheshwariReddy 您是否在 SQL 中运行以检查它是否返回任何数据? @RahulGiradkar 这没有意义。 【参考方案1】:

您需要使用此处描述的 SQLite 支持的格式之一才能使用 BETWEEN: http://www.sqlite.org/lang_datefunc.html

所以您的查询应该变成:(将 DD-MM-YYYY 字符串转换为 YYYY-MM-DD 日期)

SELECT * FROM appointment_table WHERE barber_id = 36 AND (date BETWEEN '2017-02-08' AND '2017-02-16')

【讨论】:

以上是关于在 SQLite 中获取日期范围之间的数据的主要内容,如果未能解决你的问题,请参考以下文章

Sqlite,使用分组?对于具有日期范围的子查询

在提供的多个日期范围之间获取 mongo 结果

如何在每个日期的两个日期范围之间获取 obj

作为获取谓词的日期范围 - 核心数据之间的 NSDate 谓词

获取日期范围与列中最小日期之间的所有行

获取范围之间的日期时出现问题