Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
确定日期范围是否介于另一个日期范围之间-sql_Sql_Tsql_Datetime - Fatal编程技术网

确定日期范围是否介于另一个日期范围之间-sql

确定日期范围是否介于另一个日期范围之间-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

我试图找出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 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