2017-10-12 70 views
1

我的项目即将获得学校的当前班级,我使用包含START_TIME(例如:16:00)和END_TIME(例如:18:00)列的表CLASSES创建了数据库。我有变量'小时',将从系统中获取当前时间。我的问题是:什么是查询数据库以获取当前类的最佳方式,例如(SELECT * FROM CLASSES WHERE START_TIME ='hour');通过获取当前时间的SQL查询

如果当前时间与开始时间相同,那么这对我有效,但如果当前时间介于START_TIME和END_TIME之间,该怎么办?例如课程是从(16:00到19:00)和当前时间是15:00?如何解决?

回答

0

这里究竟解决我的问题,只显示我想要的(不是之前或结果BETWEEN操作做后)结果:

SELECT * FROM CLASSES WHERE 'currentTime' >= START_TIME AND 'currentTime' < END_TIME 
0

您可以使用between像这样:

SELECT * 
FROM CLASSES 
WHERE currentTime BETWEEN START_TIME AND END_TIME; 

另一种选择是使用>=<=运营商。

+0

第二个选项正是我需要的东西,它仅显示(当前类),因为我想: SELECT * 从阶层 其中“currentTime的”> = START_TIME AND“currentTime的”

0

这是怎么回事?

SELECT * FROM CLASSES WHERE 'hour' BETWEEN START_TIME AND END_TIME 

但它取决于如何在数据库中存储开始和结束时间。作为数值(例如16,18)?那么小时价值呢?它也是数值吗? 在所有3个值都是数字,上面的查询将工作。 如果它们以某种不同的格式存储,则应该调整答案。

+0

BETWEEN操作的作品,但它给了我有时,是经过或当前的类,因为BETWEEN包括START_TIME和前班END_TIME,> =和<运营商解决了确切的问题。 –