2013-04-10 108 views
-2

我需要这样的MYSQL。两个日期之间的输出mysql

记录:

start_date | to_date 
2013-01-01 | 2013-12-31 
2013-02-01 | 2013-05-04 
2013-01-30 | 2013-04-02 
2013-04-30 | 2013-07-06 
2013-06-30 | 2013-06-09 
2013-08-30 | 2013-10-03 

我输入FROM_DATE 2013年4月1日和TO_DATE 2013年6月10日

我出去放shuld是这样的:

start_date | to_date 
2013-01-01 | 2013-12-31 
2013-02-01 | 2013-05-04 
2013-01-30 | 2013-04-02 
2013-04-30 | 2013-07-06 
2013-06-30 | 2013-06-09 

可以在任何对此有一个帮助。

+2

我是否愚蠢地看到背后的想法“应该是这样的”?你分组/过滤的是什么? – Najzero 2013-04-10 12:14:26

+0

我的猜测:用户输入日期范围(from_date到to_date)。只要这个日期范围与db中的一个范围重叠,就应该从db输出范围。对? – 2013-04-10 12:17:01

+0

是@MartyMcVry – 2013-04-10 12:33:52

回答

1

似乎你想找到与给定范围重叠的范围;

SELECT * FROM date_table 
WHERE start_date < '2013-06-10' 
    AND to_date > '2013-04-01' 

也就是说,你与列to_date和你TO_DATE与列start_date比较你FROM_DATE。

An SQLfiddle to test with

+0

lsaksson但林没有得到任何超出此查询SELECT * FROM date_table WHERE起始日期<“2013-01-01” 到TO_DATE>“2013年4月1日” – 2013-04-10 12:32:05

+1

@BashaGhouse请参见日期的顺序在我的查询中,后面的日期出现在第一个条件中。 – 2013-04-10 12:41:26

+0

gr8 ....谢谢。 – 2013-04-10 13:27:08

相关问题