0

我想从 sqlite 数据库中选择图像和视频在这里我实现了我的查询,但它给了我错误的结果我的当前日期是 2014-07-15 但它为我提供了错误的 2014-07-25 日期结果。

我的查询:

SELECT * 
FROM myfiles 
WHERE (( Date('2014-07-15') >= startdate 
AND Date('2014-07-15') <= enddate ) 
AND ( strftime('%H:%M:%S', starttime) >= '02:09:50' 
OR  '02:09:50'  <= strftime('%H:%M:%S', endtime )) 
AND ( strftime('%H:%M:%S',timer_from) >= '02:09:50' 
OR '02:09:50' <= strftime('%H:%M:%S',timer_to )) 
OR ( strftime('%H:%M:%S',timer_from) = '00:00:00' 
OR '00:00:00' = strftime('%H:%M:%S',timer_to ))) 
AND ( Tuesday = 1 OR Everyday = 1) 
AND download = 1 
AND playlist_id = 65 
AND user_id='265' 
ORDER BY position_id ASC, subposition_id ASC 

-> 下载此图片的链接 http://screencast.com/t/yS4SqUDqhe

Mysqlite 原始数据库图片

在此处输入图像描述

执行查询后 执行查询图像

在此处输入图像描述

4

1 回答 1

1

true即使日期无效,以下部分也会评估整个检查:

OR ( strftime('%H:%M:%S',timer_from) = '00:00:00' OR '00:00:00' = strftime('%H:%M:%S',timer_to ))

也就是说,结果包含标记的行(其timer_from = '00:00:00'timer_to = '00:00:00')也就不足为奇了。

更新
尝试更改ORAND上述查询部分。

更新 2
在查询结尾之前ORDER BY position_id ASC, subposition_id ASC和之后添加以下检查AND user_id='265'

AND (Date('2014-07-25') > startdate)
于 2014-07-15T06:49:25.063 回答