SQL НЕ МЕЖДУ запроса - PullRequest
       13

SQL НЕ МЕЖДУ запроса

4 голосов
/ 24 февраля 2011

Заранее спасибо за любые советы или подсказки!

У меня есть таблица бронирования в базе данных mysql, table1.Он содержит дату начала и дату окончания.У меня есть другая таблица, table2, которая содержит информацию, которую мне нужно получить, но только когда конкретная дата НЕ находится между любыми датами из каких-либо строк в table1.

Пример;

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

Однако я не могу заставить его работать!Есть предложения?

Ответы [ 2 ]

9 голосов
/ 24 февраля 2011

Это должно работать, но должно выглядеть примерно так:

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)

Редактировать Глядя на ваш вопрос, я понял, что дата, вероятно, не является значением базы данных :), поэтому ваш метод должен работатьно вам может понадобиться привести строку к дате.

2 голосов
/ 24 февраля 2011

Как-то так?

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')
...