简体   繁体   English

sql group by date没有时间

[英]sql group by date without time

I am new to sql, and I would like to create a query that will count all my article id's for each day. 我是sql的新手,我想创建一个查询,它将计算我每天的所有文章ID。 but the problem the date column is also containing time.. so how I can make the query to group by just by date without time? 但问题是日期列还包含时间..所以我怎样才能使查询按日期分组而没有时间?

for example: 例如:

id|article_id|date (timestamp)

1|22|2014-01-10 13:30:10 
1|23|2014-02-10 12:30:10 

Thanks Shai 谢谢Shai

尝试这个:

select count(article_id) from YourTable group by date(date)

尝试这个:

select date(date), count(article_id) from YourTable group by date(date);
$dayCount = 0;
$previousDay = "";     

 $query = $database->prepare('
 SELECT DATE_FORMAT(date, '%d/%m/%Y') AS date FROM my_table ORDER BY date');
 $query->execute();
 while ($output = $query->fetch()) { 

  $day = $output['date'];

  if($previousDay != $day)
   { $dayCount ++; }
  else { 
     echo $dayCount; 
     $dayCount = 0;
  }

 $previousDay = $day;

 }

Can can find DATE_FORMAT output here: 可以在这里找到DATE_FORMAT输出:
http://dev.mysql.com/doc/refman/5.0/fr/date-and-time-functions.html http://dev.mysql.com/doc/refman/5.0/fr/date-and-time-functions.html

To group by date without time => use the following 要按日期分组没有时间=>使用以下内容

NOTE: myDateTime is in date time format 注意:myDateTime采用日期时间格式

GROUP BY CAST(myDateTime AS DATE) GROUP BY CAST(myDateTime AS DATE)

this will work 这会奏效

SELECT
COUNT(id),to_char(to_date('2014-01-10 13:30:10','yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd') AS date_part
FROM your_table_name
GROUP BY to_char(to_date('2014-01-10 13:30:10','yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd')

I am too late in the race. 我在比赛中太迟了。 Hope it may help some one in future. 希望它可能在将来帮助一些人。

There are 2 solution's for this 有2个解决方案

  1. You can take DATE as filter option on your date timestamp in GROUP BY as follows 您可以在GROUP BY中的日期时间戳上将DATE作为过滤器选项,如下所示

    SELECT COUNT(id) as article_count, DATE(date) GROUP BY DATE(date) ;

  2. You can take the alias of the SELECT column with is filtered by DATE() in GROUP BY 您可以使用GROUP BY中的DATE()过滤SELECT列的别名

    SELECT COUNT(id) as article_count, DATE(date) published_date GROUP BY published_date;

Hope it helped. 希望它有所帮助。 Happy Coding! 快乐的编码!

.

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM