2010-05-09 50 views

回答

3

使用DAYOFWEEK()

返回日期平日指數(1 =週日,2 =週一,...,7 =週六)。這些索引值對應於ODBC標準。

喜歡的東西

SELECT * FROM events WHERE DAYOFWEEK(start_time) = 7 
        OR DAYOFWEEK(start_time) = 1 
        ... 
1

我會建議使用BETWEEN操作。喜歡的東西:

SELECT ... FROM EVENTS WHERE 
    START_TIME BETWEEN :weekend_start AND :weekend_end 
    OR END_TIME BETWEEN :weekend_start AND :weekend_end 

(你再找出開始和結束時間有問題的週末,並在適當約束他們)

以上會發現什麼,在至少與重疊週末。如果事件必須完全包含在週末(即不能在之前開始並且不能在之後開始),那麼只需將OR更改爲AND