如何检查两个指定日期之间的日期是否落在其他两个给定日期之间 [英] how to check whether a date between two specified dates, falls between other two given dates

查看:109
本文介绍了如何检查两个指定日期之间的日期是否落在其他两个给定日期之间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

hai all

是否有任何SQL查询来检查
两个日期之间的日期是否介于其他两个日期之间.
sql server 2008中的数据库,from_date和close_date均为日期格式.
也就是说,例如,我想知道以下哪个范围的日期介于"2004-04-01"和"2005-02-01"之间
并且范围的日期介于"2002-04-01"和"2013-04-01"之间

from_date close_date
2003-04-01 2006-03-31
2003-04-01 2005-03-31
2003-04-01 2005-03-31
2003-04-01 2009-09-30
2003-04-01 2005-03-31
2003-04-01 2006-03-31
2003-04-01 2012-03-31
2003-04-01 2006-03-31
2003-04-01 2012-03-31
2003-04-01 2006-03-31
2003-04-01 2012-03-31
2003-04-01 2006-03-31
2003-04-01 2006-03-31
2003-04-01 2006-03-31
2003-04-01 2006-03-31
2003-04-01 2006-03-31
2003-04-01 2009-03-31
2003-04-01 2007-03-31
2003-04-01 2006-03-31
2003-04-01 2004-09-30
2003-04-01 2004-03-31


谁能帮忙
在此先感谢

hai all

is there any SQL query for checking
whether a date between two dates falls between other two dates .
the database in sql server 2008,from_date and close_date are in date format.
that is, for example, i want to know which of the following range has dates in between ''2004-04-01'' and ''2005-02-01''
and the range has dates in between ''2002-04-01'' and ''2013-04-01''

from_date close_date
2003-04-01 2006-03-31
2003-04-01 2005-03-31
2003-04-01 2005-03-31
2003-04-01 2009-09-30
2003-04-01 2005-03-31
2003-04-01 2006-03-31
2003-04-01 2012-03-31
2003-04-01 2006-03-31
2003-04-01 2012-03-31
2003-04-01 2006-03-31
2003-04-01 2012-03-31
2003-04-01 2006-03-31
2003-04-01 2006-03-31
2003-04-01 2006-03-31
2003-04-01 2006-03-31
2003-04-01 2006-03-31
2003-04-01 2009-03-31
2003-04-01 2007-03-31
2003-04-01 2006-03-31
2003-04-01 2004-09-30
2003-04-01 2004-03-31


can any one help
thanks in advance

推荐答案

以获取指定日期之间的日期:
to get the date between Specified Dates:
Select * From MyTable Where timecreated Between Cast('7/20/08 12:01:01' As DateTime) And Cast('7/20/09 12:01:01' as DateTime)


完全或部分重叠吗?
对于完全重叠,WHERE子句为
Completely or partially overlapping?
For a complete overlap, the WHERE clause is
WHERE from_date<@min_date AND close_date>@max_date


对于部分重叠:


For a partial overlap:

WHERE from_date<@max_date AND close_date>@min_date


在哪里((m.[from_date]< = @ min_date and m.[close_date]> = @ @max_date)OR(m.[from_date]> = @ @min_date and m .. [from_date]< @max_date)OR((m.[close_date]< = @max_date and m.close_date> @min_date)OR((m.[from_date]> = @min_date)和m.[from_date] < @max_date)和((m.[close_date]< = @max_date)和m.[close_date]> @min_date))
WHERE ((m.[from_date] <= @min_date and m.[close_date] >= @max_date )OR(m.[from_date]>= @min_date and m.[from_date]< @max_date ) OR(m.[close_date] <= @max_date and m.close_date > @min_date ) OR((m.[from_date] >= @min_date ) and m.[from_date] < @max_date ) and ((m.[close_date] <= @max_date )and m.[close_date] > @min_date ))


这篇关于如何检查两个指定日期之间的日期是否落在其他两个给定日期之间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆