Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用日期介于两个日期之间的between运算符时发生sql错误_Mysql_Sql_Date - Fatal编程技术网

Mysql 使用日期介于两个日期之间的between运算符时发生sql错误

Mysql 使用日期介于两个日期之间的between运算符时发生sql错误,mysql,sql,date,Mysql,Sql,Date,我有一个包含开始日期和结束日期的事件表。我正在尝试通过提供介于开始日期和结束日期之间的日期来检索所有记录 例如: 但是响应是语法错误。有人能帮我完成查询吗?根据mysql文档()BETWEN的语法是 expr BETWEEN min AND max 事实并非如此 expr BETWEEN blabla=min AND stuff=max 此外,在所有三个表达式中使用常量是毫无意义的,因为在这种情况下,结果将提前知道(总是TRUE或总是FALSE),而无需参考表中的值 在不知道表的结构的情况下

我有一个包含开始日期和结束日期的事件表。我正在尝试通过提供介于开始日期和结束日期之间的日期来检索所有记录

例如:


但是响应是语法错误。有人能帮我完成查询吗?

根据mysql文档()BETWEN的语法是

expr BETWEEN min AND max
事实并非如此

expr BETWEEN blabla=min AND stuff=max
此外,在所有三个表达式中使用常量是毫无意义的,因为在这种情况下,结果将提前知道(总是TRUE或总是FALSE),而无需参考表中的值

在不知道表的结构的情况下给您举个例子有点困难,但是您可能想要的是

WHERE '2017-01-29' BETWEEN start_date
                   AND     end_date
WHERE  some_column BETWEEN '2017-01-28' 
                   AND    '2017-01-31' 
(假设
start\u date
end\u date
是表中的列)

或者类似的

WHERE '2017-01-29' BETWEEN start_date
                   AND     end_date
WHERE  some_column BETWEEN '2017-01-28' 
                   AND    '2017-01-31' 

(假设您的表中有一列是
some_column

根据mysql文档()BETWEN的语法是

expr BETWEEN min AND max
事实并非如此

expr BETWEEN blabla=min AND stuff=max
此外,在所有三个表达式中使用常量是毫无意义的,因为在这种情况下,结果将提前知道(总是TRUE或总是FALSE),而无需参考表中的值

在不知道表的结构的情况下给您举个例子有点困难,但是您可能想要的是

WHERE '2017-01-29' BETWEEN start_date
                   AND     end_date
WHERE  some_column BETWEEN '2017-01-28' 
                   AND    '2017-01-31' 
(假设
start\u date
end\u date
是表中的列)

或者类似的

WHERE '2017-01-29' BETWEEN start_date
                   AND     end_date
WHERE  some_column BETWEEN '2017-01-28' 
                   AND    '2017-01-31' 
(假设表中有一列是
列)。

只需列出列即可

WHERE '2017-01-29' BETWEEN start_date AND end_date
值来自表,您不需要将它们放入查询。

只需列出列即可

WHERE '2017-01-29' BETWEEN start_date AND end_date

这些值来自表,您不需要将它们放入查询中。

2017-01-29
放在
WHERE
之前,而是将要按日期筛选的字段的名称放在
EventDate
(或您的字段名称)之前。

而不是将
2017-01-29
放在
WHERE
之前,输入要按日期筛选的字段的名称,例如
EventDate
(或任何字段名称)。

我相信您正在尝试查找日期为2017-01-29的所有行,因此,您的查询可能是:

SELECT * 
FROM   `events` 
WHERE   
date = '2017-01-29';
但是,如果希望所有行的日期都在2017-01-28和2017-01-31之间,则可以执行以下操作:

SELECT * 
FROM   `events` 
WHERE   
date BETWEEN '2017-01-28' AND '2017-01-31';

我相信您正在尝试查找日期为2017-01-29的所有行,因此,您的查询可能是:

SELECT * 
FROM   `events` 
WHERE   
date = '2017-01-29';
但是,如果希望所有行的日期都在2017-01-28和2017-01-31之间,则可以执行以下操作:

SELECT * 
FROM   `events` 
WHERE   
date BETWEEN '2017-01-28' AND '2017-01-31';

你能给我一些建议来完成我的任务吗requirment@sivasandeepgarapati我的答案不是这样吗?你能给我一些建议来完成我的任务吗requirment@sivasandeepgarapati我的答案不是这样的吗?我想他想要的是开始和结束之间的所有事件。我想他想要的是开始和结束之间的所有事件。