SQL语句与或之间

SQL语句与或之间,sql,pdo,Sql,Pdo,下面的SQLPDO语句出现语法错误,您能告诉我错误在哪里吗? 谢谢大家! SELECT * FROM events WHERE (start_date BETWEEN '2013-01-14' AND '2013-01-20') OR (start_date NOT < '2013-01-14' and end_date > '2013-01-20') 选择* 从事件中 哪里 (开始日期介于“2013-01-14”和“2013-01-20”之间) 或(开始日

下面的SQLPDO语句出现语法错误,您能告诉我错误在哪里吗? 谢谢大家!

SELECT * 
FROM events 
WHERE 
    (start_date BETWEEN '2013-01-14' AND '2013-01-20') 
    OR (start_date NOT < '2013-01-14' and end_date > '2013-01-20')
选择*
从事件中
哪里
(开始日期介于“2013-01-14”和“2013-01-20”之间)
或(开始日期不<'2013-01-14'和结束日期>'2013-01-20')

您在第一节中的日期后缺少一个

SELECT * FROM events WHERE (start_date BETWEEN '2013-01-14' AND '2013-01-20') OR (start_date NOT < '2013-01-14' and end_date > '2013-01-20')
从以下事件中选择*(开始日期在“2013-01-14”和“2013-01-20”之间)或(开始日期不在“2013-01-14”和结束日期在“2013-01-20”之间)

您在2013-01-20之后错过了一个勾号

SELECT * FROM events 
WHERE 
(start_date BETWEEN '2013-01-14'  AND '2013-01-20')  
OR (start_date >= '2013-01-14' and end_date > '2013-01-20')

在表达式的中间不能放<代码> > />代码,它前面的表达式:

NOT start_date < '2013-01-14'

(使用
NOT
的例外是
is NULL
运算符,其中
NOT x为NULL
x为NOT NULL
都有效。)

错误文本是什么?我的第一个猜测是日期格式无效。我的第二个问题是,事件可能是一个保留字,可能需要转义。但真正的问题是你在第二次约会后错过了a。在手术室之后,开始日期>='2013-01-14'不是更合适吗?正如你所怀疑的,“不是d'oh!我在PDO中想的(我不知道)它可能是有效的…错过了那一个。是的,你是正确的。我一定是在复制和粘贴过程中丢失了它。对不起,谢谢你!但我仍然得到错误,我想它与“不是的,你是正确的”有关。我一定是在复制粘贴过程中把它弄丢了。。对不起,谢谢!我猜你的开始日期也没有<'2013-01-14'的嫌疑,因为我仍然在这部分得到错误..谢谢。我以前从未用过NOT这个词,这就是我犯错误的原因。现在它起作用了。非常感谢(所有人):)
start_date >= '2013-01-14'