본문 바로가기
MySql

MySQL SQL NOT BETWEEN 쿼리

by 베이스 공부 2020. 10. 17.
반응형

조언이나 팁에 미리 감사드립니다!

mysql 데이터베이스 table1 에 예약 테이블이 있습니다. 시작 날짜와 종료 날짜가 포함됩니다. 필요한 정보가 포함 된 table2 라는 다른 테이블이 있지만 특정 날짜가 table1 의 모든 행에있는 날짜 사이에 존재하지 않는 경우에만 해당됩니다.

예;

select table2.testfield
FROM table2, table1
WHERE '2011-02-24 18:00:00'
NOT BETWEEN table1.start 
AND table1.finish

그러나 나는 그것을 작동시킬 수 없습니다! 어떤 제안?

 

해결 방법

 

이것은 작동하지만 더 비슷하게 보일 것입니다.

select table2.testfield
FROM table2, table1
WHERE table1.YourField = '2011-02-24 18:00:00' 
AND
NOT BETWEEN table1.start AND table1.finish

또한 table1.start table1.finish 필드가 DateTime 유형이라고 가정합니다. 그렇지 않은 경우 필드 캐스팅을 시도 할 수 있습니다.

select table2.testfield
    FROM table2, table1
    WHERE table1.YourField = '2011-02-24 18:00:00' 
    AND
    NOT BETWEEN Cast(table1.start as DateTime) AND Cast(table1.finish As DateTime)

편집 귀하의 질문을 보면 날짜가 아마도 데이터베이스 값이 아니라는 것을 깨달았습니다. :) 따라서 메서드가 작동해야하지만 문자열을 datetime으로 캐스팅해야 할 수도 있습니다.

 

참조 페이지 https://stackoverflow.com/questions/5106466

 

 

반응형

댓글