내가 직면 한 문제는 그리 복잡하지 않고 여기에 대한 몇 가지 답변이 있지만 필요에 따라 문제를 해결하는 것이 보이지 않았습니다. 따라서 timefrom 및 timeto라는 이름의 VARCHAR 유형의 두 필드가있는 테이블이 있습니다. 이러한 필드는 다음 형식으로 시간을 저장합니다. 12:00, 05 : 18,00 : 05 .... 날짜도 초도없고 24 시간 형식의 시간과 분만 있습니다. 시작 시간과 종료 시간이라는 두 개의 필드가있는 양식이 있습니다. 이제 사용자 시작 시간 및 종료 시간이 DB의 timefrom 및 timeto 필드와 교차하는 데이터베이스에서 모든 행을 선택하고 싶습니다. 다음 쿼리가 있습니다.
"SELECT * FROM reservation WHERE ((timeto>='$timefrom' AND timeto<='$timeto') OR (timefrom>='$timefrom' AND timefrom <='$timeto'))"
이 쿼리는 모든 종류의 교차로에서 작동하지만 사용자가 제공 한 시간이 DB에 저장된 시간에 맞는 경우에는 작동하지 않습니다. 예를 들어 DB timefrom = 20 : 00 및 timeto = 23 : 00이고 사용자 입력 starttime = 21 : 00 및 endtime = 22 : 00 인 경우 쿼리는 교차점을 반환하지 않으며 그래야합니다. 누구든지 신뢰할 수있는 솔루션을 보여줄 수 있다면 큰 도움이 될 것입니다. 감사
모든 종류의 날짜 / 시간을 간단한 문자열로 저장하는 것은 MySQL 자체에서 제공하는 날짜 및 시간 작업을위한 기본 제공 기능을 잃기 때문에 좋은 생각이 아닙니다.
다음과 같이 시도하십시오.
SELECT * FROM reservations
WHERE
TIME_FORMAT(timefrom, '%H:%i') >= '21:00' AND TIME_FORMAT(timeto, '%H:%i') <= '23:00'
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다