我有一张活动表,其中一些活动在一个月内的特定周内重复出现(例如,每个月的第一个星期三)。
如何选择以下内容?
表
event day week
quiz wednesday 1
伪代码将是:
SELECT * FROM table WHERE week = weeknumberWithinCurrentMonth()
由于我们现在处于2月的第三周,因此将从上面的伪查询中获取0行。如果我们在2月的第1周,它会选择示例行。
答案 0 :(得分:3)
SELECT * FROM table WHERE week = FLOOR((DayOfMonth(NOW()) - 1)/ 7)+1
尽可能接近。
答案 1 :(得分:1)
这可能是您正在寻找的:
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_week
SELECT WEEK(CURDATE()) - WEEK(DATE_FORMAT(NOW() , '%Y-%m-01')) + 1