在sqlite或其它的数据库中,如果要对查询结果进行时间段过滤是一个很麻烦的事情,根据我的工作经验将常用时间段查询的sql总结如下:
我们现在的表主要有两个字段start_time和end_time,经常需要判断开始时间和结束时间必须在某一个时间段。
select * from schedlue where
datetime( start_time)>=datetime('2011-08-01') and datetime(end_time)<=datetime('2011-09-01')
如果还有的数据是跨月的数据,在查询的时候查询某个记录的开始时间和结束时间段是否覆盖了当月
select * from schedlue where --跨月 ((datetime( start_time)<=datetime('2011-08-01') and datetime(end_time)>=datetime('2011-08-01')) or ( datetime(start_time)<=datetime('2011-09-01') and datetime(end_time)>=datetime('2011-09-01'))) --当月 or (datetime( start_time)>=datetime('2011-08-01') and datetime(end_time)<=datetime('2011-09-01') )
原文链接:https://www.f2er.com/sqlite/201850.html