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개 / 댓글 5개
채택된 답변
+20 포인트
2020-12-04 (금) 13:14:51
초로 바꿔서 하면 됩니다.
Copy
SELECT ROUND(
(
TIME_TO_SEC(CONCAT(close_time, close_minute, "00")) -
TIME_TO_SEC(CONCAT(open_time, open_minute, "00"))
)/60/30
)
사족이지만 쿼리나 프로시져로 짜면 이점도 많습니다.
단... 그 쿼리나 프로시져를 100% 이해해야 하지만요 ^^
답변에 대한 댓글 2개
humanb2box
2020-12-04 (금) 14:39:55
백수1995
2020-12-04 (금) 16:44:12
DB 에서 해야 될일은 최대한 DB 에서 처리하는게 아무래도 유지보수 측면에서는 좋겠죠
2020-12-04 (금) 10:32:40
쿼리로는 복잡하니
전체 데이터를 가져오고
이후에 반복문에서 조건에 맞게끔 걸러내서
다시 배열로 할당해서 쓰시거나 해야할거 같네요.
답변에 대한 댓글 1개
humanb2box
2020-12-04 (금) 10:35:07
where절에 퍼센트를 넣어야 하거든요,,,,,,,, (영업불가능시간 / 영업시간 * 100) ㅠㅠ
컨트롤러 단에서는 뽑을 수 있는데 ,,
컨트롤러 단에서는 뽑을 수 있는데 ,,
병원에서일해요
2020-12-04 (금) 10:28:11
꼭 쿼리로 짜서 가져와야하는 이유가 있으신가요?
그냥 디비에서 조건값으로 뽑아와서 php로 조건주고 반복문 돌리셔도 될거같은데요
답변에 대한 댓글 2개
humanb2box
2020-12-04 (금) 10:35:26
where절에 퍼센트를 넣어야 하거든요,,,,,,,, (영업불가능시간 / 영업시간 * 100) = $param ㅠㅠㅜㅜ
컨트롤러 단에서는 뽑을 수 있는데 ,, 하.. 어째야할까요
컨트롤러 단에서는 뽑을 수 있는데 ,, 하.. 어째야할까요
병원에서일해요
2020-12-04 (금) 10:40:49
최대한 한번에 하면 좋지만 어렵다면
where절 조건도 계산한 다음 다시 쿼리로 던져주는방법을 쓰시는게,,
영업시간가져와고 -> 퍼센트조건 만들어서 다시 쿼리를 날리고 -> 30분단위로 분기
where절 조건도 계산한 다음 다시 쿼리로 던져주는방법을 쓰시는게,,
영업시간가져와고 -> 퍼센트조건 만들어서 다시 쿼리를 날리고 -> 30분단위로 분기
답변을 작성하려면 로그인이 필요합니다.
어찌보면 간단한데 프로시져까지 가려했네요..