2011-08-04 47 views
1

我想選擇僅在將來顯示但當前正在顯示的節目。這必須是一個常見的請求,但我找不到任何有關幫助我解決此問題的信息。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天也不會被顯示的節目。

回答

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 

要選擇已經開始但尚未完成的節目。

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 
1

試試這個:

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