728x90

현재 일자 보다 시간단위로 시간 분 까지 체크해서 작은 데이터를 모두 셀렉트 하는 쿼리문 

SELECT *,
  LEFT(SO.sv_time, 2) AS sv_time_hours,
  RIGHT(SO.sv_time, 2) AS sv_time_minutes
FROM shop_order SO
WHERE 1=1
  AND SO.ci_gubun = 'CS001'
  AND SO.ord_status > 'OR10'
  AND SO.ci_maching_state='MS10'
  AND CONCAT(SO.sv_start_date, ' ', LEFT(SO.sv_time, 2), ':', RIGHT(SO.sv_time, 2)) < NOW();

 

1000 으로 sv_time 에 데이터가 있다면 left 와 right 함수로 잘라서 가운데는 : 로 붙여서 날짜 타입으로 concat 로 문자열을 합쳐서 now 함수와 비교하면 조회 된다. 

 

만약 어제 일자 까지로 조회 하고 싶다면 CURDATE() - INTERVAL 1 DAY

SELECT * FROM shop_order SO
WHERE 1=1 
AND SO.ci_gubun = 'CS001' 
AND SO.ord_status > 'OR10'
AND SO.ci_maching_state='MS10' 
AND sv_start_date < CURDATE() - INTERVAL 1 DAY;

 

로 현재 일자에서 마이너스 1 day 를 해서 어제 일자 보다 작은 일자를 모두 찾는다. 

 

728x90

+ Recent posts