>

MySQL에서이 작업을 수행하면 작동합니다 :

   SELECT * FROM reservations
WHERE
reservationStartDate >= '2018-01-01' 
AND
reservationEndDate <= '2018-02-16'
AND
reservationSpace = 'kantoor-1'

그래서 다음과 같은 기능을 만들고 싶습니다 :

       public function checkReservations($startdate, $enddate, $workspace, $bind="") {
            //SELECT * FROM reservations WHERE reservationStartDate >= '2018-01-19' AND reservationEndDate <= '2018-02-01' AND reservationSpace = 'kantoor-1';
            // Date format = 2018-12-31
    $sql = "
            SELECT * FROM apolloworkspaces.reservations
            WHERE
            reservationStartDate >= '".$startdate."' 
            AND
            reservationEndDate <= '".$enddate."'
            AND
            reservationSpace = '".$workspace."'
            "
            ;               
    $this->run($sql,$bind);
}      

그리고 PHP에서는 다음을 사용합니다 :

$test2 = $db->checkReservations('2018-01-01', '2018-02-16', 'kantoor-1');
echo '<pre>'.print_r($test2,true).'</pre>';

아무것도 보여주지 않습니다 ... 거의 날짜가 Y-m-d로 변경되었습니다.

  • 답변 # 1

    STR_TO_DATE 를 사용할 수 있습니다  MySQL 기능 :

    SELECT * FROM reservations 
    WHERE reservationStartDate 
    BETWEEN STR_TO_DATE('22-01-2018', '%d-%m-%Y') 
            AND STR_TO_DATE('03-02-2018', '%d-%m-%Y')
    
    

    BETWEEN STR_TO_DATE

    BETWEEN   reservationStartDate >= '22-01-2018' AND reservationStartDate <= '03-02-2018' 의 더 나은 형태입니다  (속도 측면에서도)하지만 귀하의 경우에는 STR_TO_DATE 에서만 작동합니다.  'd-m-Y'문자열을 실제 날짜 형식으로 변환하여 MySQL에서 처리 할 수 ​​있도록합니다.

    DATE  유형 입력란

    가장 좋은 일은 DATE 를 사용하는 것입니다  날짜를 저장할 필드를 입력하므로 STR_TO_DATE 가 필요하지 않습니다.  더 이상.

  • 답변 # 2

    이것을 시도하십시오 :

    SELECT * FROM reservations WHERE reservationStartDate >= '22-01-2018' 
    AND reservationEndDate<= '03-02-2018'
    
    

  • 답변 # 3

    MySQL database 에서 행을 선택해야하는 경우  날짜 범위의 표를 보려면 다음과 같은 명령을 사용해야합니다.

    SELECT * FROM table 
    WHERE date_column >= '2014-01-01' AND date_column <= '2015-01-01';
    
    

    STR_TO_DATE() 를 사용할 수 있습니다  문자열을 MySQL 로 변환  날짜 값 :

    SELECT * FROM reservations 
    WHERE reservationStartDate BETWEEN STR_TO_DATE('22-01-2018', '%d-%m-%Y') AND STR_TO_DATE('03-02-2018', '%d-%m-%Y')
    
    

    그러나 pyzwyz로 열을 변환하는 것이 현명합니다.  문자열을 사용하는 대신

    DATE data type

관련 자료

  • 이전 c# - 일부 제한이있는 JOIN을 구현하는 알고리즘
  • 다음 sql - 테이블에 값이 존재하는지 비교하는 방법