`
wyf
  • 浏览: 428026 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

判断两个时间交叉

    博客分类:
  • SQL
 
阅读更多

SQL中常常要判断两个时间段是否相交,该如何判断呢?比如两个时间段(S1,E1)和(S2,E2)。我最先想到的是下面的方法一。

方法一:(S1 BETWEEN S2 AND E2) OR (E1 BETWEEN S2 AND E2)。很好理解:一个时间段的开始时间S1在另一个时间中间(S2,E2),或者结束时间E1在另一个时间中间(S2,E2)。
这个方法比较繁琐,我们来看方法二.

 

方法二:本方法先考虑这两段时间什么情况下不相交,如下图:
   -----+-----------------+-----------------+--------------+--------------

         S1                    E1                  S2                 E2

   -----+-----------------+-----------------+--------------+--------------

         S2                    E2                  S1                 E1

 无非两种情况:(S1,E1)段在(S2,E2)段前面和(S1,E1)段在(S2,E2)段后面。其对应的表达式为:(S2 > E1) OR (S1 >  E2)。于是相交条件就是 NOT((S2 > E1) OR (S1 >  E2))该式等价于


(S2 <= E1)AND (S1 <= E2)

这就是我们要的。

其实方法一和方法二的条件是一致的:
((S1 <=  E2) AND (S1 >= S2)) OR ((E1 <= E2) AND (E1 >= S2))
  =>((S1 <= E2) AND (S1 >= S2) ) OR ((S1 <= E2 ) AND (E1 >= S2))  (因为S1 <= E1)
<=> (S1 <= E2) AND ((S1 >= S2) OR (E1 >= S2))
  => (S1 <= E2) AND ((E1 >= S2 ) OR (E1 >= S2))  (因为 S1 <= E1)
<=>(S1 <= E2) AND (E1 >= S2)

分享到:
评论

相关推荐

    C# 判断时间段是否相交的实现方法

    1. 判断两个起止时间是否相交: public static bool IsTimeBetween(TimeSpan input, TimeSpan start, TimeSpan end, bool fromInclusice, bool toInclusive) { //...

    三均线交叉提醒

    五天线和十天线之交叉,判断短线趋势,十天线和三十天线之交叉,判断周为单位的中线趋势,三十天线和六十天线的交叉,基本上就属于阶段性的长线趋势,至少影响几个月的走势.六十天和半年线的交叉,影响时间更长,半年线和年...

    表单校验时间段重叠问题

    有个统计时段的字段,需排除选择的时间范围不能与已有时间段重叠

    PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)

    主要介绍了PHP编程计算两个时间段是否有交集的实现方法,结合具体实例形式对比分析了php时间段的转换、比较等相关操作技巧,需要的朋友可以参考下

    信号交叉口停车线穿越时间和速度的经验分析和建模。

    在三个农村高速路口收集了1465辆汽车的高分辨率轨迹上海的时速限制为80 km / h,两个城市交叉口的时速限制为50 km / h。 利用车辆的轨迹数据,进行统计分析,以了解两种交叉口的停车线穿越时间和速度的一般特征。 ...

    通达信指标——放量攻击(副图).doc

    放量攻击指标还使用了CROSS函数来判断移动平均线的交叉点,CROSS函数可以用来判断两个移动平均线的交叉点,若两个移动平均线的交叉点在某个时间点上,则表示市场的趋势可能会发生改变。 在放量攻击指标中,攻擊3日...

    通达信指标公式源码 百发百中选股和龙抬头选股.doc

    3. 交叉指标:交叉指标是指两个移动平均线的交叉情况。它可以用来判断股票的趋势变化。 4. 条件语句:条件语句是指用于判断股票是否满足某些条件的语句。它可以用来过滤掉不符合条件的股票。 应用场景: 1. 股票选...

    MyBox.rar_布线算法_布线问题算法_自动布线算法

    两个针脚之间通过布设一条金属线路而实现互连。这条线路被称为电线,被限制在矩形区域内。如果两条电线发生交叉,则会发生电流短路。所以不允许电线间的交叉。每对互连的针脚被称为网组。 要解决的问题是,对于给定...

    简单精准通达信指标公式源码.doc

    CROSS 是一个判断两个曲线是否交叉的函数。如果 E1 和 E2 交叉,那么 B1 为真。如果 M1 和 M2 交叉,那么 B2 为真。 最后,简单精准通达信指标公式源码还包括一个条件判断: COUNT(B1,5)=1 AND B2&gt;0; 该条件判断...

    通达信指标公式源码 红柱起飞 副图源码.doc

    CROSS 函数是通达信平台上的一种特殊函数,用于判断两个指标是否发生交叉。在这个公式中,我们可以看到多个CROSS 函数的使用,用于判断MA指标之间的交叉。这些函数的参数包括交叉的方向、交叉的类型等信息。 通达信...

    基于视频双截面的信号控制交叉口延误检测 (2011年)

    在交叉口适当的位置设置两个虚拟检测器,分别判定并记录车辆进入和离开交叉口的信息.在判断车辆进入交叉口时,对新进入交叉口的车辆提取车辆的斑块并进行匹配,如果连续8次斑块都匹配,则表示车辆被检测到;如果判定车辆...

    论文研究-基于分层法的通风网络图绘制算法研究.pdf

    最长路径法绘制通风网络图需要频繁地搜索任意两个节点之间的最长路径,采用深度优先搜索导致大量的时间浪费在无用路径的搜索过程中;且采用几何相交方法判断分支交叉,效率低且无法有效地减少分支交叉数。提出了将...

    文华公式期货short短线指标文华财经指标公式源码.doc

    VAR1 和 VAR2:VAR1 和 VAR2 是两个逻辑变量,用于判断当前市场趋势是否满足某些条件。VAR1 判断乖离率是否在 -2 到 5 之间,VAR2 判断 K1 是否小于或等于 8。 上火车轨:上火车轨是一个指标,用于判断当前价格是否...

    常见动态规划问题总结

    1.三角形找一条从顶到底的最小路径 ...7.使两个字符串相等,最小的编辑次数 8.给定一串数字,1对应A,2对应B,26对应Z,求有多少种解码方式 9. 不同的子序列Distinct Subsequences 10.单词分解Word Break

    KDJ底背离通达信指标公式源码.doc

    这里 CROSS 函数是用于计算两个时间序列的交叉点,HHV 函数是用于计算最高值,VOL 是成交量。 这个指标公式可以帮助我们预测股票的上涨或下跌,并提供了一些有价值的信息来帮助我们进行投资决策。

    自相关、部分自相关、互相关和部分互相关函数:这允许将 ACC、PACC、CCF、PCCF 作为滞后函数进行评估。-matlab开发

    自相关函数显示两个系列之间的相关系数,原始系列和滞后系列。 AC 系数通常会慢慢消失。 假设中间值已知,PACF 确定原始序列和滞后序列之间的相关系数。 注意:这两个应该作为建模的第一步。 有关其他信息和保修,...

    文华财经期货软件指标公式源码红绿灯涨跌.doc

    CrossRef 函数用于判断两个移动平均线的交叉点,表示市场趋势的变化。如 CROSS(C, MA(C, 120)) 表示当当前价格超过 120 日移动平均线时,表示市场趋势由跌转涨。 3. 红绿灯涨跌指标 红绿灯涨跌指标是根据移动平均...

    文华财经指标公式期货软件指标公式文华公式指标日内五分钟波段超短线买卖点提示.doc

    5. CROSS函数:该函数用于判断两个指标的交叉点。该函数的参数包括两个指标的名称等。 6. LLV和HHV函数:该函数用于计算最高价和最低价。该函数的参数包括价格、时间周期等。 7. REF函数:该函数用于获取之前的值...

    通达信指标公式源码 本人珍藏很久的一个波段指标.doc

    在这个公式中,使用了多个交叉信号,包括CROSS(EMA(CLOSE,2),EMA(((SLOPE(CLOSE,21)*20)+CLOSE),42))和CROSS(EMA(((SLOPE(CLOSE,21)*20)+CLOSE),42),EMA(CLOSE,2)),它们用于判断短期和长期趋势的变化。 绘图 该...

Global site tag (gtag.js) - Google Analytics