我的表结构是这样的
CREATE TABLE `survey` (
`id` int(11) NOT NULL auto_increment,
`submitdate` datetime default NULL,
`answer` varchar(5) collate utf8_unicode_ci default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=499 ;
现在我想计算最近 10 天的记录。假设某一天没有记录。它应该为零。
输出是这样的
date count
19-11-2012 10
18-11-2012 30
13-11-2012 0
.
.
我用过类似的查询
SELECT COUNT( * ) , DATE( submitdate )
FROM survey t
WHERE t.submitdate >= ( CURDATE( ) - INTERVAL 10
DAY )
GROUP BY DATE( submitdate )
LIMIT 0 , 30
输出是
count(*) date(submitdate)
1 2012-11-13
2 2012-11-14
1 2012-11-15
3 2012-11-16
6 2012-11-17
没有带日期的记录不给出 0。
最佳答案
你可以尝试这样的事情来获得输出:-
SELECT * FROM survey t WHERE t.date >= DATE_ADD(CURDATE(), INTERVAL -10 DAY);
或者你可以试试这个:-
SELECT * FROM survey t WHERE t.date >= ( CURDATE() - INTERVAL 10 DAY )
检查 Date_Add文档
关于mysql - 我如何使用 mysql 获取最近 10 天的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13443165/