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获取这些记录?
答案 0 :(得分:4)
您的列名不应该在引号中。它们应该是蜱虫:
SELECT *
FROM reservation
WHERE `from` <= '2013-06-01'
AND `to` >= '2013-06-01'
答案 1 :(得分:1)