在两个日期列之间搜索记录

时间:2013-12-23 12:16:37

标签: mysql

我有一张格式低于

的表格
--------------------------------------------------------
type   |   requirements   |   from       |     to      |
--------------------------------------------------------
 A          23               2012-12-12      2012-12-24|
--------------------------------------------------------
B           22               2012-12-10      2013-01-14|
--------------------------------------------------------
C           20               2013-11-18      2012-12-10|
--------------------------------------------------------

现在,当我搜索2010-12-23日期的总要求时。我应该

----------------------------
  type   |   requirements   |
  ---------------------------
    A          23           |
  ---------------------------
    B           22          |
-----------------------------

获得此结果的查询是什么?我搜索了很多但找不到任何提示。请帮帮我。

2 个答案:

答案 0 :(得分:4)

假设'2010-12-23'表示'2012-12-23',您可以使用MySQL的BETWEEN ... AND ...比较运算符进行过滤:

SELECT `type`, `requirements`
FROM   `my_table`
WHERE  '2012-12-23' BETWEEN `from` AND `to`

sqlfiddle上查看。

答案 1 :(得分:1)

为什么不

SELECT * FROM TABLE WHERE "from" > "2010-12-23" AND "to" < "2010-12-23"

如果你想包括两个日期,你可以使用&gt; =和&lt; =或者像这样使用BETWEEN:

SELECT * FROM TABLE WHERE "2010-12-23" BETWEEN "from" AND "to"

仅供参考,名称“from”和“to”并不理想为列名,但我猜您刚刚将其作为示例发布。