美好的一天,
我正在尝试使用以下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'
答案 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;