为什么这个带DATE的SQL查询不起作用?

时间:2013-06-16 19:08:19

标签: mysql sql

CREATE TABLE `reservation`
(
    `name` VARCHAR(255),
    `from` DATE,
    `to` DATE
);

INSERT INTO RESERVATION VALUES ('aaa', '2013-04-23', '2013-05-06');
INSERT INTO RESERVATION VALUES ('bbb', '2013-04-01', '2013-08-06');
INSERT INTO RESERVATION VALUES ('ccc', '2013-05-12', '2013-05-19');
INSERT INTO RESERVATION VALUES ('ddd', '2013-06-01', '2013-07-27');
INSERT INTO RESERVATION VALUES ('eee', '2013-06-23', '2013-07-06');
INSERT INTO RESERVATION VALUES ('fff', '2013-07-23', '2013-08-09');

SELECT * FROM reservation WHERE 'from' <= '2013-07-01' AND 'to' >= '2013-07-01'

现场:http://sqlfiddle.com/#!2/80d9cd/2

我想获得2013-07期间的所有记录。此查询应该返回我:

2  | bbb    |  2013-04-01  |  2013-08-06
4  | ddd    |  2013-06-01  |  2013-07-27
5  | eee    |  2013-06-23  |  2013-07-06
6  | fff    |  2013-07-23  |  2013-08-09

因为2013-07期间是>到和&lt;来自此记录。为什么这会给我带来0记录?如何使用SQL获取这些记录?

2 个答案:

答案 0 :(得分:4)

您的列名不应该在引号中。它们应该是蜱虫:

SELECT * 
FROM reservation 
WHERE `from` <= '2013-06-01' 
AND `to` >= '2013-06-01'

http://sqlfiddle.com/#!2/80d9cd/3

答案 1 :(得分:1)

这里的工作人员

http://sqlfiddle.com/#!2/80d9cd/5

你有fromto是保留的mysql关键字你应该通过反引号来围绕