我有一个具有开始日期和结束日期的事件表我正在尝试通过给出开始日期和结束日期之间的日期来检索所有记录。
例如:
input type="input" name="Content-Type"
但是响应是语法错误,任何人都可以帮我完成查询
答案 0 :(得分:2)
根据mysql文档(https://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html#operator_between),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
(假设start_date
和end_date
是表格中的列)
或类似
WHERE some_column BETWEEN '2017-01-28'
AND '2017-01-31'
(假设some_column
是表格中的一列。)
答案 1 :(得分:2)
只列出列。
WHERE '2017-01-29' BETWEEN start_date AND end_date
值来自表,您不会将它们放入查询中。
答案 2 :(得分:1)
我相信您正在尝试查找日期为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';
答案 3 :(得分:0)
不要将2017-01-29
放在WHERE
之前,而是按日期输入要过滤的字段的名称,例如EventDate
(或者您的字段的名称)。