Mysql 按日期计数仅 DATETIME 的一部分

标签 mysql

我有一个如下表

 +-----+--------------+---------------------+
 | id  | url          | visit_date          | 
 +-----+--------------+---------------------+
 |  1  + 60           | 2012-06-23 18:15:49 |  
 +-----+--------------+---------------------+
 |  2  + 60&ref=qr    | 2012-06-23 12:15:49 |  
 +-----+--------------+---------------------+
 |  3  + 54           | 2012-06-23 18:15:49 |  
 +-----+--------------+---------------------+
 |  4  + 5            | 2012-06-24 18:15:49 |  
 +-----+--------------+---------------------+
 |  5  + 60           | 2012-06-25 13:15:49 |  
 +-----+--------------+---------------------+
 |  6  + 60           | 2012-06-25 19:15:49 |  
 +-----+--------------+---------------------+

我只想对我的日期的结果进行分组。所以结果是,例如我只想要 60 的 url。

  +-------------+------------------+
  |visit_date   |count(visit_date) |
  +-------------+------------------+
  |  2012-06-23 |        2         | 
  +-------------+------------------+
  |  2012-06-25 |        2         |
  +-------------+------------------+

我已尝试以下操作,但显然由于时差,我得到了每个日期。

  SELECT visit_time, COUNT( visit_time ) 
  FROM tracking
  WHERE query_string LIKE  '%60%'
  GROUP BY visit_time

是否可以只通过日期来忽略时间来做到这一点?

最佳答案

是的,可以。只需使用 DATE() 函数即可。

SELECT DATE(visit_time), COUNT( visit_time ) 
FROM tracking
WHERE query_string LIKE  CONCAT('%', '60' ,'%')  -- makes readable
GROUP BY DATE(visit_time)

关于Mysql 按日期计数仅 DATETIME 的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11963622/

相关文章:

mysql - 更改 MySQL 中 GROUP BY 的顺序

php - Mysql如何通过2个查询过滤多行结果

php - PHP 中的密码验证和确认密码始终显示错误

mysql查询查找可能以不同字母开头的特定单词?

php 计算帖子回复次数

java - o.a.tomcat.jdbc.pool.ConnectionPool : Unable to create initial connections of pool. Spring Boot + MySql

java - 基于架构的 Multi-Tenancy : getting "java.sql.SQLException: No database selected" from time to time

php - CakePHP 不会按条件应用组

php - 使用 mySqli 清理数据

mysql - 将 clientid 作为表中的第一个字段是否是一种好习惯,从而制作一个复合键来代替更快的获取