2014-09-29 53 views
6

我是新來的sql,並且我想創建一個查詢,它將計算我每天的所有文章ID。但日期列的問題也包含時間..所以我可以如何使查詢按時間分組?按時間排序的sql組

例如:

id|article_id|date (timestamp) 

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

感謝 夏嘉曦

+0

'按日期分組(日期)' – 2014-09-29 09:42:38

回答

1
$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

+0

*我想創建一個查詢,它將統計我每天的所有文章ID * – 2014-09-29 09:45:04

+0

哪裏來的日子! – Strawberry 2014-09-29 09:57:26

0

要組按日期不受時間=>使用以下

注:myDateTime是日期時間格式

GROUP BY CAST(myDateTime AS DATE)

7

試試這個:

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

這將工作

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

用你的專欄名稱取代日期 – 2014-09-29 10:21:01

3

試試這個:

select date(date), count(article_id) from YourTable group by date(date); 
0

我太晚了比賽。希望將來可能會有所幫助。

有2個解決方案的這個

  1. 您可以在GROUP BY您的日期時間戳DATE的過濾選項如下

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

  2. 你可以採取的別名SELECT列與由GROUP BY中的DATE()過濾

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

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

+0

非常感謝你,我是未來的人,他對此非常有幫助。 – user373396 2017-07-17 19:55:34