6

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

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

一个例子;

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

但是我无法让它工作!有什么建议么?

4

2 回答 2

14

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

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

这也假定您的table1.starttable1.finish字段是 type 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)

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

于 2011-02-24T15:12:53.917 回答
3

那么有这样的事情吗?

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')
于 2011-02-24T15:13:07.697 回答