Mysql 选择不匹配任何元素的日期

Mysql 选择不匹配任何元素的日期,mysql,sql,Mysql,Sql,我在DDBB上有以下记录: 并希望选择日期“2014-06-02”介于其cl_开始日期和cl_结束日期之间的任何记录(这意味着应选择记录ID 39)。为此,我这样做: SELECT * FROM class_conf WHERE ( 2014 -06 -02 >= cl_startDate ) && ( 2014 -06 -02 <= cl_endDate ) 从class_conf中选择* 其中(2014-06-02>=cl_startDate)&(2014-0

我在DDBB上有以下记录:

并希望选择日期“2014-06-02”介于其cl_开始日期和cl_结束日期之间的任何记录(这意味着应选择记录ID 39)。为此,我这样做:

SELECT * FROM class_conf
WHERE ( 2014 -06 -02 >= cl_startDate ) && ( 2014 -06 -02 <= cl_endDate )
从class_conf中选择*

其中(2014-06-02>=cl_startDate)&(2014-06-02=cl_startDate)&&2014-06-02您需要将日期放在引号中,否则您将进行数学运算。此外,日期值中没有空格。您还需要使用
而不是
&
。此处不需要括号

SELECT * FROM class_conf
WHERE '2014-06-02' >= cl_startDate AND '2014-06-02' <= cl_endDate
从class_conf中选择*

如果'2014-06-02'>=cl_startDate和'2014-06-02',则需要将日期放在引号中,否则就是在进行数学运算。此外,日期值中没有空格。您还需要使用
而不是
&
。此处不需要括号

SELECT * FROM class_conf
WHERE '2014-06-02' >= cl_startDate AND '2014-06-02' <= cl_endDate
从class_conf中选择*

其中“2014-06-02”>=cl_startDate和“2014-06-02”为什么日期之间有空格

SELECT * FROM class_conf
WHERE ( 2014 -06 -02 >= cl_startDate ) && ( 2014 -06 -02 <= cl_endDate )
从class_conf中选择*

其中(2014-06-02>=cl_startDate)和(2014-06-02=cl_startDate和'2014-06-02'为什么日期之间有空格

SELECT * FROM class_conf
WHERE ( 2014 -06 -02 >= cl_startDate ) && ( 2014 -06 -02 <= cl_endDate )
从class_conf中选择*

其中(2014-06-02>=cl_startDate)和(2014-06-02=cl_startDate和'2014-06-02'为什么不使用
BETWEEN
操作符?
cl_startDate在x和y之间
你的标题是“日期不匹配”,但你的问题是“日期之间”。它是哪一种?中间是另一种获得正确记录的方法。使用运算符方法和中间方法之间有什么优势吗?当您使用
Between
时,逻辑更为明显。哎呀,在cl\u startDate和cl\u endDate之间应该是
'xxx'。为什么不使用
Between
运算符呢?
cl\u startDate是x和y之间
你的标题是“日期不匹配”,但你的问题是“日期之间”。它是哪一种?中间是另一种获得正确记录的方法。使用运算符方法和中间方法之间有什么优势吗?当您在
之间使用
时,逻辑更为明显。哎呀,在cl_startDate和cl_endDate之间应该是
'xxx'。根本不需要任何括号。@Barmar correct,但在许多ca中ses我喜欢包含括号,这样当我以后调试代码时,我就能清楚地理解
([something AND[other thing])
是连接在一起的。根本不需要任何括号。@Barmar正确,但在许多情况下,我喜欢包含括号,这样当我以后调试代码时,我就能清楚地理解
([something AND[other])[另一件事]
已连接。