嗨我需要在我的Android应用程序检查特定时间间隔内的时间。时间存储在SQlite DB中。
如何选择检查用户选择的时间间隔是否与DB内的时间间隔冲突?
例如,如果用户从6 00到18 00选择时间,则他不应该在时间6 00到18 00之间添加另一个时间间隔。如果用户提取时间为9 00,那么它在06 00 - 18 00之内且此时间已经在DB中。知道如何做到这一点。
这是我的选择,但不是很好。
SELECT EXISTS(SELECT 1 FROM nepritomnosti
WHERE id = '821'
AND dBeginDate = '2014-08-13'
AND ((strftime( '%s', tBeginTime ) <= strftime( '%s', '17:00' ))
AND (strftime( '%s', tEndTime ) >= strftime( '%s', '21:00' )))
LIMIT 1)
答案 0 :(得分:2)
这不是检查两个区间是否重叠的正确公式。
您需要交换另一个间隔的两个端点;如果他们被称为tMin
/ tMax
:
tBeginTime <= tMax AND tEndTime >= tMin