2011-09-05 298 views
1

我有一个日期范围像如何检查的日期范围的日期,两个日期之间坐落于MySQL查询

日期= 2011-10-14 &日期= 2011-10-20

如果我有另一个日期范围

- 2011-10-11 - 2011-10-15 
- 2011-10-11 - 2011-10-21 
- 2011-10-15 - 2011-10-21 
- 2011-10-15 - 2011-10-19 
- 2011-10-21 - 2011-10-26 

我想SQL查询,显示其仅日期之间的上述(2011-10-14 & date to=2011-10-20)日期[R在于日期范围安格。

这里只2011-10-21 - 2011-10-26不在于date from=2011-10-14 & date to=2011-10-20

结果必须显示

- 2011-10-11 - 2011-10-15 
- 2011-10-11 - 2011-10-21 
- 2011-10-15 - 2011-10-21 
- 2011-10-15 - 2011-10-19 

这些日期

希望你明白我问。

+0

首先,你使用什么数据类型? 'Datetime'?而你说你想要在14号和20号之间。所以在所有的本质上,你真的想要> 14? – rzetterberg

+0

另一个日期范围 - 它是什么?他们保存在某个表格中还是通过用户输入提供? – heximal

+0

这些范围如何存储在数据库中?每个在DATE字段的单独列中?或单个字符串中的字符串?你试过什么了? –

回答

7
date_from < '2011-10-20' AND date_to > '2011-10-14' 
+0

非常感谢你Mikael ...由问题解决....有gr8救济... – sujal

0

WHERE date_from >= '2011-10-14' AND date_to <= '2011-10-20'

但这个如果你有你的列的数据类型设置为DATEDATETIME只会工作

+0

不适用于2011-10-11 - 2011-10-15 2011-10-11 - 2011-10-21 这些日期 – sujal

0
SELECT * FROM datetable where mydate BETWEEN '2011-10-14' AND '2011-10 20'; 
+0

mydate在范围内,即 2011-10-11 - 2011-10-15,2011-10-11 - 2011-10-21,2011-10-15 - 2011-10-21,2011-10-15 - 2011-10-19并检查日期是否在2011-10-15 - 2011-10-19(2011-10-16,2011-10-17,2011-10-18,2011-10-19)位于日期= 2011-10-14&date to = 2011-10-20 – sujal

0

你可以去网上搜索:-)

你就可以通过来的第一个链接是这样的: http://www.c-sharpcorner.com/Blogs/692/

希望以上链接有助于解决您的查询。

或者,你可以给这样的事情:

SELECT * FROM myTBL WHERE myReqDate NOT BETWEEN '2011-10-14' 和 '2011-10-20'

+0

myReqDate在范围内即2011-10-11 - 2011-10-15 2011-10-11 - 2011-10-21 2011-10 -15 - 2011-10-21 2011-10-15 - 2011-10-19 并检查日期是否类似于例如2011-10-15 - 2011-10-19(2011-10-16,2011-10-17,2011-10-18,2011-10-19)位于*日期从= 2011-10-14&date to = 2011-10-20 * – sujal