안녕하세요 jju_developer 입니다.
백엔드 엔지니어로 코딩을 하다보면 데이터베이스를 다룰 일이 정말 많은데용!
하면 할수록 자바로 코딩을 해야할지 아니면 쿼리에서 데이터를 뽑아올지 참 고민이 많이 되는 시점입니다...!
아무튼 오늘은 특정 데이터들의 무리속에서 내가 원하는 날짜의 데이터를 뽑아오는 방법에 대해 알아보겠습니다.
과일가게 table 이라는 이름의 데이터베이스가 있다고 가정을 해보겠습니다.
해당 과일가게 테이블의 컬럼에는 사용자이름 과 사과바구니, 구매일이 있다고 가정을 해보겠습니다.
이때 오늘날짜의 구매한 사과 바구니의 총 개수를 구하고 싶을때에는 어떻게 할까요?
select count(사과바구니)
from 과일가게
where 사용자이름 = 'jju'
and 구매일 >= DATE_FORMAT(NOW(), '%Y-%m-%d 00:00:00');
이름이 jju 인 사용자가 오늘만 몇개의 사과 바구니를 구매했는지 count 를 하면 됩니다.
근데 한시간 마다 사과바구니를 몇개 팔았는지를 알고 싶을때에는 어떻게 하면 좋을까요?
select 사과바구니
from 과일가게
where 구매일 > DATE_SUB(NOW(),INTERVAL 1 hour);
이렇게 조회를 하게 된다면 전체 과일가게에서 구매일에서 현재시간 ~ 1시간전 까지의 데이터를 뽑아올 수 있습니다.
이제 DATE_SUB(NOW(),INTERVAL 1 hour) 이부분을 잘 활용을 한다면
1시간 단위, 2시간 단위, 3시간 단위등 원하는 단위의 시간대를 착착 뽑아올수 있겠죵?
그렇다면!
최근으로부터 한달전까지의 데이터를 보고 싶다!! 하면 어떻게 할까요?
DATE_SUB(NOW(),INTERVAL 1 hour) ---> DATE_SUB(NOW(),INTERVAL 1 month)
이렇게 시간을 달로 변경해주면 끝~!!
[응용]
※ DATE_SUB(NOW(),INTERVAL 1 year)
※ 구매일 between '2023-11-24' and '2023-12-30'
간단하지만 유용하게 여러곳에서 가져올수 있습니다.
그럼 오늘도 고생 많으셨습니다~!
'주니어 기초 코딩공부 > Database 기초' 카테고리의 다른 글
[스프링] Tomcat MariaDB 연동 (53) | 2023.12.13 |
---|---|
[MariaDB] 데이터베이스 MYSQL에서 MariaDB로 연동 덤프 뜨기 (0) | 2023.12.13 |
내 로컬 데이터베이스를 다른 사용자가 접근 할 수 있도록 변경하기 (2) | 2023.11.22 |
[MySQL] GROUP_CONCAT 사용하기 (0) | 2023.10.17 |
Error Code: 1055. Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggregated column (0) | 2023.10.10 |