我有一个表,存储所有用户创建的事件,并带有字段“start_time”和“end_time” 如何在周末选择所有活动?
答案 0 :(得分:3)
使用DAYOFWEEK():
返回日期的工作日索引(1 =星期日,2 =星期一,...,7 =星期六)。这些索引值对应于ODBC标准。
像
这样的东西SELECT * FROM events WHERE DAYOFWEEK(start_time) = 7
OR DAYOFWEEK(start_time) = 1
...
答案 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
。