Mysql 表中开始日期和结束日期之间的周末事件

Mysql 表中开始日期和结束日期之间的周末事件,mysql,sql,Mysql,Sql,我想从表中查找周末活动。表中有起始日期和截止日期 我写了一个查询,如果开始日期和结束日期相等。i、 e SELECT * from table where date_from < DATE_ADD(CURDATE(), INTERVAL 7 DAY) and (DAYOFWEEK(date_from) = 7 or DAYOFWEEK(date_from) = 1) 如果您想显示下周六和周日(一周的第一天是周一),您可以使用5-工作日(curdate())计算到下周六的差异天

我想从表中查找周末活动。表中有起始日期和截止日期

我写了一个查询,如果开始日期和结束日期相等。i、 e

SELECT *
from table
where date_from < DATE_ADD(CURDATE(), INTERVAL 7 DAY) and
      (DAYOFWEEK(date_from) = 7 or DAYOFWEEK(date_from) = 1)

如果您想显示下周六和周日(一周的第一天是周一),您可以使用
5-工作日(curdate())
计算到下周六的差异天数,并使用
6-工作日(curdate())
计算下周日的差异天数

因此:

解释

工作日
周一至周日返回0-6个展位

因此,要获得下周日(
Weekday(aSunday)=6
),只需添加
6-weedday(curdate())


< P> >下星期六(<代码>工作日(ASATOURDY)=5 < /代码>),需要考虑CurDATE是星期日,然后添加<代码> 5—6 将于昨天获得。所以添加7和mod 7可以得到6,这将在下周六从本周日得到。

查询使用MySQL语法,所以我删除了SQL Server标记。这是MySQL吗?我看不到日期:-(你所说的“本周六或周日”是什么意思?你是指“从现在起最近的周六和周日”?是的。从现在起最近的周六和周日我提供了一个解决方案,请根据您的评论进行检查。
Start Date    End Date    Show/Don't Show
29-10-2014    30-10-2014  Don't Show
29-10-2014    03-11-2014  Show
03-11-2014    03-12-2014  Don't Show
29-10-2014    03-12-2014  Show
01-11-2014    01-11-2014  Show
SELECT *
from 
    my_table
where 
    DATE_ADD(CURDATE(), INTERVAL (7+5 - weekday(curdate()))%7 DAY) between date_from and date_to
or 
    DATE_ADD(CURDATE(), INTERVAL 6 - weekday(curdate()) DAY) between date_from and date_to