sql选择范围内的日期

时间:2015-09-05 07:34:36

标签: mysql date

表:

id | u_id | start_date |  end_date  |
-------------------------------------
01 |   7  | 2015-05-05 | 2015-07-23 |
02 |   4  | 2015-07-10 | 2015-07-15 |
03 |   4  | 2015-08-27 | 2015-11-05 |
04 |   5  | 2015-08-01 | 2015-12-09 |

需要这些行:

03 |   4  | 2015-08-27 | 2012-11-05 |
04 |   5  | 2015-08-01 | 2012-12-09 |

输入我查询的数据: start_date = 2015-10-01end_date = 2015-10-31

1 个答案:

答案 0 :(得分:2)

试试这个:

SELECT id, u_id, start_date, end_date 
FROM mytable
WHERE start_date <= @end_date AND end_date >= @start_date

上述内容将返回start_date - end_date间隔@start_date - @end_date重叠的所有记录。

Demo here