查询以查找在开始时间是从前一天开始的时间间隔内发生的值

时间:2016-04-08 19:32:52

标签: mysql sql datetime

美好的一天,

我正在尝试使用以下SQL查询来返回在23:00 HRS到04:00之间发生的所有值,无论日期如何。

如果开始时间小于结束时间,例如04:00 - 08:00,则查询有效。 列'time'是一个日期时间变量  我怎样才能做到这一点?

SELECT AVG(Taxi) AS Average,capacity, name, time
FROM Stations s, TaxiUsage b
WHERE s.usageID=b.stationId AND TIME(b.time)>= '23:00:00' AND TIME(b.time)<'04:00:00'
GROUP BY time;

以上查询运行但返回'Empty set'

1 个答案:

答案 0 :(得分:0)

首先,学习正确的JOIN语法。其次,不要在SELECT中包含不在GROUP BY中的列或聚合函数的参数。 然后,使用OR代替AND

SELECT time, AVG(Taxi) AS Average
FROM Stations s JOIN
     TaxiUsage u
     ON s.usageID = u.stationId 
WHERE TIME(b.time) >= '23:00:00' OR TIME(b.time)<'04:00:00'
GROUP BY time;