簡體   English   中英

sql group by date沒有時間

[英]sql group by date without time

我是sql的新手,我想創建一個查詢,它將計算我每天的所有文章ID。 但問題是日期列還包含時間..所以我怎樣才能使查詢按日期分組而沒有時間?

例如:

id|article_id|date (timestamp)

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

謝謝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;

 }

可以在這里找到DATE_FORMAT輸出:
http://dev.mysql.com/doc/refman/5.0/fr/date-and-time-functions.html

要按日期分組沒有時間=>使用以下內容

注意:myDateTime采用日期時間格式

GROUP BY CAST(myDateTime AS DATE)

這會奏效

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')

我在比賽中太遲了。 希望它可能在將來幫助一些人。

有2個解決方案

  1. 您可以在GROUP BY中的日期時間戳上將DATE作為過濾器選項,如下所示

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

  2. 您可以使用GROUP BY中的DATE()過濾SELECT列的別名

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

希望它有所幫助。 快樂的編碼!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM