입력된 날짜,시간범위에 있는 내용만 보여주는 쿼리문 봐주세요~
본문
현재 글 수정 시 viewStart, viewEnd 값이 입력이 안되어있고 또 다시 입력을 해줘야하는 이슈가 있어서
제가 수정하였는데..아래 쿼리 부분과 선언부분이 달라서 적용이 안되어지고 있어요.
아래는 이렇게 들어가있구요.
$Data["viewStart"] = $_POST["viewStart"];
$Data["viewHour1"] = $_POST["viewHour1"];
$Data["viewMin1"] = $_POST["viewMin1"];
$Data["viewEnd"] = $_POST["viewEnd"];
$Data["viewHour2"] = $_POST["viewHour2"];
$Data["viewMin2"] = $_POST["viewMin2"];
if($tb == '게시판명') {
$subQuery .= " AND 'viewStart <= '".date("Y-m-d H:i")."' AND viewEnd >= '".date("Y-m-d H:i")."'";
}
위에 쿼리가 이렇게 들어가있어요.
viewStart - Y-m-d 날짜
viewHour1 - H 시간
viewMin1 - i 분 인데요.
쿼리가 아래 들어가는 선언부분과 맞지 않아서요.
if($tb == '게시판명') {
$subQuery .= " AND 'viewStart' && 'viewHour1' && 'viewMin1' <= '".date("Y-m-d H:i")."' AND 'viewEnd' && 'viewHour2' && 'viewMin2' >= '".date("Y-m-d H:i")."'";
}
이런식으로 바꿔줘야할거 같은데..제가 잘 몰라서 쿼리 구문이 잘못된거 같아요.
어떻게 바꿔줘야할까요?
UNIX_TIMESTAMP(NOW()) 이걸 사용하기도 하는거 같은데 제가 적용하기가 어렵네요;;
아시는 분들 계시면 지나치지 마시고 변경 부탁드릴게요~
팁이라도 주세용
감사합니다.
답변 3
날짜 + 시 + 분 필드를 합해야 한다면 mysql concat을 찾아보세요
그리고 기준조건이 현재라면 now() 를 조건으로 between 구문을 쓰시면 될듯합니다.
select * form 테이블 where now() between CONCAT(viewStart, viewHour1, viewMin1) and CONCAT(viewEnd, viewHour2, viewMin2)
현재가(now()) CONCAT(viewStart, viewHour1, viewMin1) 와 CONCAT(viewEnd, viewHour2, viewMin2) 사이의 데이터를 가져오라는 쿼리 입니다.
물론 테스트는 해보지 않았습니다.
대략 쿼리 형식이 저렇다는 점 참고 하시면 됩니다.
now() 대신에 '".date("Y-m-d H:i")."' 이부분을 대입해 보세요