DBMS/MySQL

[MySQL] 특정 날짜 Select 하는 방법 - between

쌍쌍바나나 2016. 5. 23. 22:00
반응형

들어가며

  SQL을 사용하면서 시간에 대한 조건을 걸어서 검색을 하는 경우가 많습니다. 저 같은 경우에는 로그가 정확하게 해당 날짜에 올라오는 개수를 알고 싶을때나, 특정 시간대에 이상점을 알고, 그 이상점에 대해 자세하게 분석하기 위해 시간 조건을 걸어서 조금더 디테일하게 보는 경우가 있습니다. 아래 예제는 timestamp에 between <time> and <time>의 조건으로 검색하는 방법에 대해서 설명을 하려고 합니다. 


쿼리 예제

  해당 쿼리는 MySQL의 기준으로 사용한 쿼리입니다. 어떤 특정 table에서 모든 조건(*)을 검색하려고 합니다. 여기서 timestamp의 형은 SQL에서 데이터 타입인 TIMESTAMP의 형태를 갖고 있습니다. 이때 SQL에서 특정 날짜에 속해있는 rows를 가져오는 방법으로 between 'condition' and 'condition'을 사용하면 됩니다. 아래 예제는 2016년 5월 12일 00시 부터 23시 59분 59초, 즉 5월 12일에 있는 데이터를 사용자별로 몇개의 로그가 있는지 결과를 보는 쿼리문입니다.  


select count(*) from table
where timestamp between '2016-05-12 00:00:00' and '2016-05-12 23:59:59' group by user_id;


  위의 결과는 해당 group_id와 그에 해당하는 개수가 출력됩니다. 


| group_id | count(*) |
| group_A | 1239233 |

| group_B | 5432323 |

|     .....     |     .....       |

반응형