[mysql]특정 기간 동안의 데이터 조회


ex) select 구문을 통해서 특정 기간 동안의 데이터가 조회가 되는 지 확인이 필요한 경우.
    다음과 같은 쿼리를 이용할 수 있음.
    형식 : date_add(now(), interval -1 day) : 현재시간함수인 now()로부터 day 기준으로 -1 사이에 있는 데이터의             갯수를 가져옴
   ※ 전제조건 : 비교하려는 데이터 형식이 데이터타입(datetime)이거나 혹은 동일한 형식으로 맞춘 후 비교를 해야함.

현재부터 한 달 전까지 where regdate >= date_add(now(), interval -1 month)
현재부터 일주일 전까지 where regdate >= date_add(now(), interval -7 day)
현재부터 하루 전까지  where regdate >= date_add(now(), interval -1 day)
현재부터 1시간 전까지 where regdate >= date_add(now(), interval -1 hour)

ex) SELECT * FROM '테이블명' WHERE 'datetime형식의 데이터 컬럼' >= DATE_ADD(NOW(), INTERVAL -1 MONTH)


cf) date_sub()이라는 함수로 존재.
 date_add(now(), interval -1 day) 와 date_sub(now(), interval 1 day)는 동일한 결과를 가져옴.
 interval 종류 : second, minute, hour, day, month, year 등..
 추가로 hour_minute, year_month 등과 같이 2가지를 동시에 비교 가능
 ex) interval "1:1"
 mssql에도 date_add() 비슷한 쓰임새를 가진 함수가 존재 : DATEADD(YEAR,1,GETDATE())

댓글