2013-05-16 94 views
0

在MySQL我試圖讓過去7天的數據,所以我從遊客表下面的查詢Mysql date_sub最近7天結果?

date_sub(curdate(), interval 7 day) <= visited_time試圖給出了5/10/2013 to 5/16/2013

日期,但同樣在這裏查詢date_sub(curdate(), interval 7 day) <= date_entered爲了表給出日期從5/9/2013 to 5/15/2013

今天是2013年5月16日,所以它應該給5/9/2013 to 5/15/2013最後7天的結果訪客表也。

這是什麼錯?好心指點

+0

你確定有'visited_time = 5/9/2013'嗎? –

+0

@ExplosionPills謝謝,我檢查了訪客表,5/9/2013沒有數據。但即使它沒有數據5/9/2013它應該返回該特定日期的空數據?我對嗎 ? – mymotherland

+0

你爲什麼這麼想? –

回答

0

我都跟着post與Numbers表格招

DROP TABLE IF EXISTS `example`.`numbers`; 
CREATE TABLE `example`.`numbers` (
    `id` int(10) unsigned NOT NULL auto_increment, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

嘗試使用填充表:INSERT INTO NUMBERS (id) VALUES (NULL) ...儘可能多的價值,因爲你需要。

然後終於嘗試用下面的查詢使用數字表左連接。

SELECT x.ts AS TIMESTAMP 
FROM (

SELECT DATE_ADD(CURDATE() , INTERVAL n.id -7 
DAY) AS ts 
FROM numbers n 
WHERE DATE_ADD(CURDATE() , INTERVAL n.id -7 
DAY) <= CURDATE() 
)x 
LEFT JOIN orders y ON (y.`date_entered`) = x.ts 
GROUP BY DATE(x.ts) 
ORDER BY DATE(x.ts) DESC 
+0

@pilcrow謝謝你保存我 – mymotherland