sql질문입니다. 가능할지..

sql질문입니다. 가능할지..

QA

sql질문입니다. 가능할지..

답변 3

본문

a 테이블에는 open_time, open_minute,close_time, close_minute

4개의 컬럼으로 영업시간이 입력되어있습니다.

 

예를 들면  9,50,23,40 이런식으로 입력되어잇습니다.

 

이것을 30분 단위로 끊어서 카운팅을 할수 잇을까요?

9:50부터 23:40 사이의 갯수입니다.

별도로 00:00 ~ 00:00은 48개가 나옵니다..

 

sql select로 가능할까요?

 

구글링을 하니까 프로시저를 사용하라는것 같은데,, 맞나요? 

 

업체가 여러곳인데 후,,, 어렵네요

 

 

이 질문에 댓글 쓰기 :

답변 3

초로 바꿔서 하면 됩니다.


SELECT ROUND(
        (
          TIME_TO_SEC(CONCAT(close_time, close_minute, "00")) - 
          TIME_TO_SEC(CONCAT(open_time, open_minute, "00"))
        )/60/30
       )

사족이지만 쿼리나 프로시져로 짜면 이점도 많습니다.

단... 그 쿼리나 프로시져를 100% 이해해야 하지만요 ^^

꼭 쿼리로 짜서 가져와야하는 이유가 있으신가요?

 

그냥 디비에서 조건값으로 뽑아와서 php로 조건주고 반복문 돌리셔도 될거같은데요

최대한 한번에 하면 좋지만 어렵다면
where절 조건도 계산한 다음 다시 쿼리로 던져주는방법을 쓰시는게,,
영업시간가져와고 -> 퍼센트조건 만들어서 다시 쿼리를 날리고 -> 30분단위로 분기

쿼리로는 복잡하니

전체 데이터를 가져오고

이후에 반복문에서 조건에 맞게끔 걸러내서

다시 배열로 할당해서 쓰시거나 해야할거 같네요.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 5
© SIRSOFT
현재 페이지 제일 처음으로