为一个月内的每一天选择count

ulydmbyx  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(373)

我有一个短信跟踪数据库,其中有一个日期列,格式为02/25/2018 04:12:52 pm。我想统计每天发送的短信数量,并将其显示在条形图中。我只能将使用此查询“select count(*)as user\u count from”的用户发送的短信计数 table 其中username='ctc01'”。如何获得特定月份中每天的计数数组

k5hmc34c

k5hmc34c1#

我知道你的日期格式是 'm/d/Y H:i:s' . 所以,为了得到一个月内每天的总数,你必须把这个月最少的时间和那个月最高的时间做一个比较。因此,2018年2月的查询将是:

SELECT DATE(date_column), COUNT(*) 
FROM jobs
where created_on >= '02/01/2018 00:00:00' and created_on < '03/01/2018 00:00:00'
GROUP BY DATE(date_column);

要为特定用户获取,只需在上面的查询中附加一个where子句,如下所示:

SELECT DATE(date_column), COUNT(*) 
FROM jobs
where created_on >= '02/01/2018 00:00:00' and created_on < '03/01/2018 00:00:00' and username = 'CTC01'
GROUP BY DATE(date_column);

编辑由于日期列是varchar,因此必须首先将其转换为datetime。因此,请运行以下查询:

SELECT DATE(DATE_FORMAT(STR_TO_DATE(date_column, '%c/%e/%Y %H:%i'), '%Y-%m-%d %H:%m:%s')) as Date, COUNT(*) 
FROM jobs
where created_on >= '02/01/2018 00:00:00' and created_on < '03/01/2018 00:00:00'
GROUP BY DATE(DATE_FORMAT(STR_TO_DATE(date_column, '%c/%e/%Y %H:%i'), '%Y-%m-%d %H:%m:%s'));
jogvjijk

jogvjijk2#

自从手术后 date_columnVARCHAR 类型。我们使用str\u to\u date函数:

SELECT DATE(STR_TO_DATE(date_column, "%m/%d/%Y %r")), COUNT(*) 
FROM table 
GROUP BY DATE(STR_TO_DATE(date_column, "%m/%d/%Y %r"));

使用date函数,将datetime表达式转换为日期。然后使用 GROUP BY 让伯爵知道日期。
在这种情况下,您需要获取特定用户(例如:ctc01)和datewise的数据。您可以执行以下操作:

SELECT DATE(STR_TO_DATE(date_column, "%m/%d/%Y %r")), COUNT(*) 
FROM table 
WHERE username = 'CTC01' 
GROUP BY DATE(STR_TO_DATE(date_column, "%m/%d/%Y %r"));

相关问题