作为两个字段的开始和结束日期之间的 MySQL: 适当的日期范围

标签: MySQL
发布时间: 2015/6/11 23:15:40
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有以下的表称为季节

+----+--------+------------+------------+
| id | cost   | start      | end        |
+----+--------+------------+------------+
| 33 |    255 | 2014-01-05 | 2014-04-16 |
| 17 |    357 | 2014-04-17 | 2014-04-19 |
| 65 | 191.25 | 2014-04-20 | 2014-07-10 |
| 49 |    255 | 2014-07-11 | 2014-08-23 |
| 81 | 191.25 | 2014-08-24 | 2014-12-18 |
+----+--------+------------+------------+

我设法之间开始和结束使用以下查询的日期范围。

SELECT 
    *
FROM
    seasons
WHERE
    (start BETWEEN '2014-01-05' AND '2014-01-05' OR end BETWEEN '2014-01-05' AND '2014-01-05');

能够得到一个结果集,如果开始日期开始确切地在该字段上的值了

+----+------+------------+------------+
| id | cost | start      | end        |
+----+------+------------+------------+
| 33 |  255 | 2014-01-05 | 2014-04-16 |
+----+------+------------+------------+

现在的问题是当我提前到日期

2014-01-06

SELECT 
    *
FROM
    seasons
WHERE
    (start BETWEEN '2014-01-06' AND '2014-01-06' OR end BETWEEN '2014-01-06' AND '2014-01-06');

空集 (0.00 秒)

有没有结果。我怎样才能到 SQL 中不同域之间的日期范围?

任何帮助被赞赏。

解决方法 1:

你有你逻辑上的倒退。如果你想在给定的日期是在那个赛季的季节然后你在什么地方条应该看起来像:

WHERE '2014-01-06' BETWEEN start AND end;
赞助商