我有一个带有许多WHERE
条件的查询,但其中一个条件需要是动态的。只有当实际时间在09:00到18:00之间时,我才需要应用一个WHERE
。即:
SELECT x,y from z WHERE
x = 'hello'
{ if time between 09:00 and 18:00 then }
AND y = 'world'
{ end if }
如何应用这样一个where条件?
非常感谢Simon
您可以这样写条件:
SELECT x, y
FROM z
WHERE x = 'hello'
AND (time NOT BETWEEN '09:00' AND '18:00' OR y = 'world')
这样,条件y = 'world'
将仅在time BETWEEN '09:00' AND '18:00'
是true
的情况下影响结果。
您可以使用一个简单的HOUR(CURRENT_TIME())
来提供当前小时数。
... WHERE HOUR(CURRENT_TIME()) > 9 AND HOUR(CURRENT_TIME()) < 18 ...