Php mysql仅选择下周数据

Php mysql仅选择下周数据,php,mysql,Php,Mysql,我的数据库中有一个日期字段,即电影发布日期 那么,从表中获取下周数据的mysql查询是什么呢 我运行了这个查询,但它不能正常工作 SELECT *, DATE_FORMAT(film_release_date,'%e-%b-%Y') AS release_date FROM gf_film WHERE MONTH(film_release_date)=MONTH(CURRENT_DATE) AND YEAR(film_release_date)=YEAR

我的数据库中有一个日期字段,即电影发布日期

那么,从表中获取下周数据的mysql查询是什么呢

我运行了这个查询,但它不能正常工作

SELECT 
    *,
    DATE_FORMAT(film_release_date,'%e-%b-%Y') AS release_date 
FROM gf_film 
WHERE 
    MONTH(film_release_date)=MONTH(CURRENT_DATE) 
    AND YEAR(film_release_date)=YEAR(CURRENT_DATE) 
    AND film_release_date>=(CURRENT_DATE) 
ORDER BY film_release_date DESC 

实际上,这是电影网站,我的数据库中有好几部电影,所以我需要一个查询,获取每下周的电影,这意味着下周将发布的电影意味着下周五。如果我今天运行,即13,那么它显示15到22之间的所有电影,如果在15到22之间运行,那么它将显示22到29之间的数据,以获得下周您可以简单应用以下逻辑的数据:

SELECT something FROM tbl_name
    -> WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAYS)

有点晚了,但是没有一个答案是正确的。您可以使用yearweek函数获取一年中的周数。因此,您可以获得now(本周)的周数或now()+间隔7天以获得下周。示例:

本周

SELECT *, DATE_FORMAT(film_release_date,'%e-%b-%Y') AS release_date 
  FROM gf_film 

WHERE YEARWEEK(film_release_date) = YEARWEEK(NOW())

ORDER BY film_release_date DESC 
下周

SELECT *, DATE_FORMAT(film_release_date,'%e-%b-%Y') AS release_date 
  FROM gf_film 

WHERE YEARWEEK(film_release_date) = YEARWEEK(NOW() + INTERVAL 7 DAY)

ORDER BY film_release_date DESC 

定义“无法正常工作”是查询无法获取下周数据实际上每周从每个星期五开始每周从每个星期五开始。我已经清楚地提到了电影相关的数据,所以如果我在monady上运行这个查询,那么它应该返回数据,这些数据将在下一次发布后发布friday@pravat,每周只有一个星期五。我知道,我只需要知道,如果我在星期五到星期五之间运行此查询,那么它将返回从星期五到下星期五的数据。明白吗??
SELECT *, DATE_FORMAT(film_release_date,'%e-%b-%Y') AS release_date 
  FROM gf_film 

WHERE YEARWEEK(film_release_date) = YEARWEEK(NOW() + INTERVAL 7 DAY)

ORDER BY film_release_date DESC