在 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 中获取日期范围之间的数据的主要内容,如果未能解决你的问题,请参考以下文章