입력된 날짜,시간범위에 있는 내용만 보여주는 쿼리문 봐주세요~

입력된 날짜,시간범위에 있는 내용만 보여주는 쿼리문 봐주세요~

QA

입력된 날짜,시간범위에 있는 내용만 보여주는 쿼리문 봐주세요~

본문

현재 글 수정 시 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 구문을 쓰시면 될듯합니다.

답변 너무 감사합니다~ 말씀주신대로 찾아보고 대입해봤는데..근데..제가 쿼리문을 잘 몰라서 이렇게 하는게 아닌가봐요^^;;
어느부분을 고치면 될까요?

$subQuery .= "select CONCAT(viewStart, viewHour1, viewMin1) <= '".date("Y-m-d H:i")."' select CONCAT(viewEnd, viewHour2, viewMin2) <= '".date("Y-m-d H:i")."'";
이렇게 해봐도 안되고
$subQuery = "select CONCAT(viewStart, viewHour1, viewMin1) <= '".date("Y-m-d H:i")."' select CONCAT(viewEnd, viewHour2, viewMin2) <= '".date("Y-m-d H:i")."'";
이렇게 해도 안되네요^^;;

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")."' 이부분을 대입해 보세요

 

위에 답변 썼다가 오타가 있어서 다시 수정해보려했는데 답변 감사합니다^^

$subQuery = "SELECT * FROM 테이블명 WHERE '".date("Y-m-d H:i")."' between CONCAT(viewStart, viewHour1, viewMin1) and CONCAT(viewEnd, viewHour2, viewMin2)";

이렇게 했는데 안되고 있어요ㅠ
'".date("Y-m-d  H:i")."' 이거 그대로 넣으면 되는걸까요?

답변을 작성하시기 전에 로그인 해주세요.
전체 219
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT