MySQL - 返回开始和结束日期之间当前日期的行

时间:2016-02-05 21:03:35

标签: mysql sql database datetime time

我到处搜索,找不到答案。

下表显示了课程的开始和结束时间。

我希望返回当前时间落在当前开始和结束时间之间的行。

开始和结束时间将根据当前时间而变化,因此无法输入特定值。

MySQL Table showing Class ID, start and end time

例如,如果当前时间是:

2016-02-05 20:15:00

然后它将返回 Class ID为6 的行。

2 个答案:

答案 0 :(得分:3)

SELECT * FROM TABLE 
WHERE Class_Start_Timestamp > GETDATE()
AND Class_End_Timestamp < GETDATE()

如果列不是日期时间:

SELECT * FROM TABLE 
WHERE CAST(Class_Start_Timestamp AS datetime) > GETDATE()
AND CAST(Class_End_Timestamp AS datetime) < GETDATE()

你也可以使用“NOW()”(mysql)和“BETWEEN”,但快速google应该会产生很多选择......

答案 1 :(得分:3)

您可以使用以下任何一种查询

SELECT * 
FROM Table
WHERE NOW() BETWEEN Class_Start_Timestamp AND Class_End_Timestamp

OR

SELECT * 
FROM Table
WHERE NOW() >= Class_Start_Timestamp AND NOW() <= Class_End_Timestamp