복붙노트

[SQL] 쿼리 BETWEEN SQL NOT

SQL

쿼리 BETWEEN SQL NOT

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

나는 MySQL 데이터베이스, 테이블 1에서 예약 테이블이 있습니다. 그것은 시작 날짜와 완료 날짜가 포함되어 있습니다. 나는 다른 테이블, 얻을 수 있지만 때 특정 날짜가 표에서 모든 행에서 날짜의 사이에 존재하지 않는 정보 나 요구를 포함 표 2있다.

예;

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

그러나 나는 일에 그것을 얻을 수 없습니다! 어떤 제안?

해결법

  1. ==============================

    1.이 작업을해야하지만 더 좋아 보일 것이다

    이 작업을해야하지만 더 좋아 보일 것이다

    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 필드 형 날짜 시간의 것을 가정한다. 그렇지 않은 경우,이 필드를 주조 시도 할 수

    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)
    

    편집 찾고는 ​​질문에 나는 당신의 방법을 작동해야하지만이 날짜에 문자열을 캐스팅해야 할 수 있도록 날짜가 아마 :) 데이터베이스 값이 아닌 것을 깨달았다.

  2. ==============================

    2.이 다음과 같은 뭔가?

    이 다음과 같은 뭔가?

    select table2.testfield
    FROM table2, table1
    WHERE 
       table1.start > convert(datetime,'2011-02-24 18:00:00')
       or table1.finish < convert(datetime,'2011-02-24 18:00:00')
    
  3. from https://stackoverflow.com/questions/5106466/sql-not-between-query by cc-by-sa and MIT license