복붙노트

[SQL] MySQL은 / ​​SQL : 만 날짜 시간 컬럼에 날짜별로 그룹

SQL

MySQL은 / ​​SQL : 만 날짜 시간 컬럼에 날짜별로 그룹

같은 열이있는 테이블을 갖는 MyDate가 DATETIME ...

나는 쿼리 등이 있습니다

SELECT SUM(foo), mydate FROM a_table GROUP BY a_table.mydate;

시간과 분을 포함한 전체 날짜에 의해이 의지 그룹. 난 단지 날짜 YYYY / MM / DD하지 YYYY로 / MM / DD / HH / mm으로하여 그룹을하고 싶습니다.

누구를 알고 어떻게이 일을? (나는 기압 나처럼) 나는 아직도 동적으로 내 코드에서 그것을 할 수 있습니다,하지만 난 쓰레기 코드를 청소하고 있는데이 방법 만 :( 알 수없는 SQL I를 통해 할 수있다.

해결법

  1. ==============================

    1.날짜,이 구문을 사용하여 다음 그룹에 날짜 캐스트 :

    날짜,이 구문을 사용하여 다음 그룹에 날짜 캐스트 :

    SELECT SUM(foo), DATE(mydate) FROM a_table GROUP BY DATE(a_table.mydate);
    

    또는 당신은 그룹 별칭에 의해 @ orlandu63 제안 수 :

    SELECT SUM(foo), DATE(mydate) DateOnly FROM a_table GROUP BY DateOnly;
    

    나는 그것이 성능에 대한 차이를 만들 것입니다 생각하지 않습니다 만, 그것은 조금 더 명확하다.

  2. ==============================

    2.또는:

    또는:

    SELECT SUM(foo), DATE(mydate) mydate FROM a_table GROUP BY mydate;
    

    당신이 행에 두 번 캐스트 MyDate가 필요가 없기 때문에 (나는 생각한다.) 더 효율적입니다.

  3. ==============================

    3.나는 그렇게 어느 쪽도 나를 위해 일한 위의 월과 올해 그룹에 필요하지 것을 발견했다. 대신에 나는 DATE_FORMAT 사용

    나는 그렇게 어느 쪽도 나를 위해 일한 위의 월과 올해 그룹에 필요하지 것을 발견했다. 대신에 나는 DATE_FORMAT 사용

    SELECT date
    FROM blog 
    GROUP BY DATE_FORMAT(date, "%m-%y")
    ORDER BY YEAR(date) DESC, MONTH(date) DESC 
    
  4. ==============================

    4.

    SELECT SUM(No), HOUR(dateofissue) 
    FROM tablename 
    WHERE dateofissue>='2011-07-30' 
    GROUP BY HOUR(dateofissue)
    

    그것은 특정한 날로부터 합으로 시간을 줄 것이다!

  5. from https://stackoverflow.com/questions/366603/mysql-sql-group-by-date-only-on-a-datetime-column by cc-by-sa and MIT license