SQL NOT BETWEEN查询

ste*_*eve 4 mysql sql between

提前感谢任何建议或提示!

我在mysql数据库中有一张预订表table1.它包含开始日期和结束日期.我有另一个表,table2其中包含我需要获取的信息,但仅当特定日期不在任何行的任何日期之间时table1.

一个例子;

select table2.testfield
FROM table2, table1
WHERE '2011-02-24 18:00:00'
NOT BETWEEN table1.start 
AND table1.finish
Run Code Online (Sandbox Code Playgroud)

但是我无法让它发挥作用!有什么建议?

msa*_*het 9

这应该工作,但应该看起来更像

select table2.testfield
FROM table2, table1
WHERE table1.YourField = '2011-02-24 18:00:00' 
AND
NOT BETWEEN table1.start AND table1.finish
Run Code Online (Sandbox Code Playgroud)

这也假设您table1.starttable1.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)
Run Code Online (Sandbox Code Playgroud)

编辑查看您的问题我意识到日期可能不是数据库值:)所以您的方法应该可以工作,但您可能需要将字符串转换为日期时间.