2010-05-09 34 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