我的项目即将获得学校的当前课程,我使用包含START_TIME(例如:16:00)和END_TIME(例如:18:00)列的表CLASSES创建了数据库。我有变量'hour',它将从系统中获取当前时间。
我的问题是:查询数据库以获取当前类的最佳方法是什么,例如(SELECT * FROM CLASSES WHERE START_TIME ='hour');
如果当前时间与开始时间相同,那对我有用,但如果当前时间在START_TIME和END_TIME之间怎么办?例如,课程是从(16:00到19:00),当前时间是15:00?怎么解决?
答案 0 :(得分:0)
你可以这样使用between
:
SELECT *
FROM CLASSES
WHERE currentTime BETWEEN START_TIME AND END_TIME;
另一种选择是使用>=
和<=
运算符。
答案 1 :(得分:0)
这个怎么样?
SELECT * FROM CLASSES WHERE 'hour' BETWEEN START_TIME AND END_TIME
但这取决于如何在DB中存储开始和结束时间。作为数值(例如16,18)?小时值怎么样?它也是数值吗? 在所有3个值都是数字的情况下,上面的查询将起作用。 如果它们以某种不同的格式存储,则应调整答案。
答案 2 :(得分:0)
这里有什么确切地解决了我的问题,只显示我想要的结果(不是在BETWEEN运算符所做的结果之前或之后):
SELECT * FROM CLASSES WHERE 'currentTime' >= START_TIME AND 'currentTime' < END_TIME