2014-09-29 5 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

'그룹 별 날짜 (날짜) ' –

답변

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를 모두 계산하는 쿼리를 만들고 싶습니다. * –

+0

하루가 어디에서 왔습니까? – Strawberry

0

는 => 다음

를 사용을

참고 :

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

이 해보입니다

select date(date), 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

날짜를 열 이름 –

3

이 시도 작동합니다 : myDateTime은 날짜 시간 형식으로

은 CAST BY GROUP (DATE AS myDateTime)

0

나는 너무 늦었습니다. 미래에 도움이되기를 바랍니다.

는이 솔루션의

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

  • 를 다음과 같이 당신은의 별칭을 취할 수 GROUP BY에 날짜 타임 스탬프에 필터 옵션으로 날짜를 취할 수있는이

    1. 를 들어 있습니다 의 항목은 GROUP BY의 DATE()에 의해 필터링됩니다.

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

    희망이 있습니다. 해피 코딩!

    .

  • +0

    으로 바꿔 주셔서 감사합니다. 장래에 도움이 될만한 사람입니다. – user373396