mysql - 我如何使用 mysql 获取最近 10 天的记录?

标签 mysql sql

我的表结构是这样的

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/

相关文章:

c# - 是否可以使用 Linq To Entities 访问生成的 SQL

SQL 时态表和 EF Code First 迁移

mysql - SQL/PHP find_in_set

php - 表单发送后根据所选选项将数据库值从 0 更新为 1

Mysql 查询其中一个数据值与表的 2 列匹配

mysql - SQL长查询问题

mysql - 如果事务中没有更改数据,则 COMMIT 与 ROLLBACK 的成本/性能

SQLyog 中 MySQL wait_timeout 不正确

php - 尝试更新 sql 数据库中的日期时如何修复此错误?