SQL将来选择日期,而不是在日期之前结束

时间:2011-08-04 16:40:07

标签: mysql sql

我想选择仅在将来展示的节目,但目前正在播放节目。这必须是一个常见的请求,但我找不到任何有关帮助我解决此问题的信息。

我的表格有日期列: - show_from - show_until

SELECT * FROM shows s 
       WHERE s.show_status = 'ENABLED'
       AND s.show_from >= CURRENT_DATE()
       ORDER BY s.show_from ASC

这将选择将来的节目,但如果节目持续时间超过1天,则不会显示。

3 个答案:

答案 0 :(得分:2)

SELECT * FROM shows s 
WHERE s.show_status = 'ENABLED'
AND 
(
  s.show_from >= CURRENT_DATE() 
  OR (s.show_from <= CURRENT_DATE() AND s.show_until >= CURRENT_DATE())
)
ORDER BY s.show_from ASC

选择已开始但尚未完成的节目。

答案 1 :(得分:1)

试试这个:

 SELECT * FROM shows s 
   WHERE s.show_status = 'ENABLED'
   AND s.show_to >= CURRENT_DATE())
   ORDER BY s.show_from ASC

答案 2 :(得分:0)

这有用吗?

SELECT * FROM shows s 
   WHERE s.show_status = 'ENABLED'
   AND (s.show_from >= CURRENT_DATE() OR s.show_to >= CURRENT_DATE())
   ORDER BY s.show_from ASC