获取不在给定范围内的多行的日期范围

时间:2015-01-22 15:44:37

标签: mysql date-range

假设我有一张桌子T,带有

Create Table T (id int, date Datetime);
Insert Into T (id,date) Values 
(1,'2012-12-11'),(2,'2012-12-12'),
(3,'2012-12-13'),(4,'2012-12-15'),
(5,'2012-12-17'),(6,'2012-12-18'),(7,'2012-12-19');

并且假设给定的日期范围是2012-12-092012-12-16,我希望在T中获得日期范围,这不在范围内。我试试这段代码:

Select date From T where '2012-12-09'<= date AND date <= '2012-12-16';

它输出范围内的所有数据,但这不是我希望得到的,我需要的是返回类似的东西:

start       end
2012-12-09  2012-12-10
2012-12-14  2012-12-14
2012-12-16  2012-12-16

这是不在给定范围内的范围。(参见下面的评论),这是不在T范围内的范围(但在给定的范围内,即'2012- 12-09 ' - '。二〇一二年十二月一十六日' )

作为测试,您可以在此处尝试:http://sqlfiddle.com/#!2/e55ba/1

1 个答案:

答案 0 :(得分:0)

只需在查询条件中尝试此项,然后您将获得不在范围内的所有结果。 其中&#39; 2012-12-09&#39;&lt; = date and date&gt; =&#39; 2012-12-16&#39;