2011-07-12 28 views
2

我在我的数据库中有一个日期字段,即film_release_date。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(CURRENT_DATE) 
    AND film_release_date>=(CURRENT_DATE) 
ORDER BY film_release_date DESC 

实际上其电影网站我已经在我的数据库几部电影,所以我需要这个今天取每下周电影,意味着电影将在下周发布意味着下一friday.If我运行IE 13的查询那说明15之间的所有电影,22,如果15至22运行这个就说明,从22日至29

+0

定义'不能正常工作' – Wrikken

+0

是查询不能获取下周数据实际上每周从每个星期五开始 – pravat231

回答

4
set @d := date_add(CURRENT_DATE, interval 7 day); 
set @week_start := @d - interval (dayofweek(@d) + 1) day; 
set @week_end := @d + interval (6 - dayofweek(@d)) day; 
SELECT *, 
     DATE_FORMAT(film_release_date,'%e-%b-%Y') AS release_date 
FROM gf_film 
WHERE film_release_date between @week_start and @week_end 
ORDER BY film_release_date DESC 
0

数据获取下周的数据,你可以简单的应用如下逻辑:

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

REFERENCE

+0

每周五开始收听周。我已经明确提到,电影相关的数据,所以如果我在monady上运行这个查询,那么它应该会返回数据,将在下周五后发布 – pravat231

+0

@pravat,每周只有1个星期五btw – diEcho

+0

是的,我知道我只需要知道如果我在星期五到星期五之间运行这个查询,那么它应该从星期五到下一个星期五返回数据。 – pravat231