确定日期范围是否介于另一个日期范围之间-sql
我试图找出sql中是否有一种方法(首选t-sql)来识别一个日期范围是否介于另一个日期范围之间 就我的例子而言: daterange1=我有一个定义的日期范围,日期为2012年1月1日-2012年1月5日 daterange2=我还有两个日期要处理,比如说2012年1月3日和2012年1月4日 我想把它用在类似这样的案例陈述中确定日期范围是否介于另一个日期范围之间-sql,sql,tsql,datetime,Sql,Tsql,Datetime,我试图找出sql中是否有一种方法(首选t-sql)来识别一个日期范围是否介于另一个日期范围之间 就我的例子而言: daterange1=我有一个定义的日期范围,日期为2012年1月1日-2012年1月5日 daterange2=我还有两个日期要处理,比如说2012年1月3日和2012年1月4日 我想把它用在类似这样的案例陈述中 CASE WHEN daterange1 = 0 then result1 WHEN daterange2 falls within daterange
CASE
WHEN daterange1 = 0 then result1
WHEN daterange2 falls within daterange1 then result2
END as datestuff
这在SQL中可能吗?我真的被这个问题难住了,我知道如何判断一个日期是否在一个范围内,但如何才能在一个日期范围内完成呢?答案不一定要在案例陈述中,但最好是这样。既然是一个范围,即2个值,你怎么能得到
daterange1=0
对重叠日期的正确测试是
CASE WHEN @range1start <= @range2end
and @range2start <= @range1end THEN 1 ELSE 0 END
当@range1start选择*
从t
其中(开始日期介于开始日期和结束日期之间
或开始日期和结束日期之间的结束日期
或(开始日期<开始日期>=结束日期)) 谢谢你,我以为一定是那样的,只是想不出来。非常感谢。谢谢你。
CASE WHEN @range1start <= @range2start
and @range2end <= @range1end THEN 1 ELSE 0 END