列出取决于时间限制的项目

时间:2017-03-26 12:26:34

标签: mysql

我试图提出一个SQL查询,该查询将列出某个时间跨度内的行,这取决于当前时间。调用此查询的函数将检查用户是否在系统中,否则会将其列为缺席。

Table

例如,一个类从9:00开始,查询应该将ScheduleTimeStart和ScheduleTimeEnd与当前时间进行比较。查询应仅在时间为9:00及以后列出行,但如果当前时间超过30分钟冷却时间,则不列出行。所以换句话来说就是9点到9点30分。

到目前为止我做了什么:

SELECT studentID, scheduleID, scheduleDate, scheduleTimeStart, scheduleTimeEnd, schedule.classID, schedule.unitsID 
FROM schedule 
JOIN schedule_students USING(scheduleID) 
JOIN students USING(studentID)
WHERE scheduleDate=CURDATE()
AND scheduleTimeStart >= CURTIME() //Gordons answer
AND scheduleTimeStart < CURTIME() + interval 30 minute// but its not working
AND studentID=1003;

1 个答案:

答案 0 :(得分:0)

首先,学会使用参数。不要使用值来挖掘SQL字符串。这可能会导致语法错误和SQL注入漏洞。

SELECT s.*
FROM schedule s
WHERE scheduleID = ? AND classID = ? AND unitsID = ? AND
      DATE(scheduleDate) = CURDATE() AND
      scheduleTimeStart >= CURTIME() AND
      scheduleTimeStart < CURTIME() + interval 30 minute;

目前尚不清楚scheduleTimeEnd是否也需要相同的条件。