我需要检查数据库中是否还有两个日期和另外两个日期。
我的数据库看起来像这样
+----+--------------+------------+------------+
| id | code | StartDate | EndDate |
+----+--------------+------------+------------+
| 1 | KUVX-21-40 | 2013-10-23 | 2013-11-22 |
| 2 | UEXA286-1273 | 2013-10-30 | 2013-11-29 |
| 3 | UAJFAU-2817 | 2013-10-21 | 2013-11-20 |
| 4 | KUVX-21-40 | 2013-10-30 | 2013-11-29 |
+----+--------------+------------+------------+
在我的查询中,我指定范围:开始日期和结束日期让我们对其进行如下分配:
ScopeStartDate = "2013-10-1"
ScopeEndDate = "2013-11-26"
上面应该归还我所有的记录,因为所有的时间都超过了时间跨度。
但是我无法使查询工作:/
我已经尝试了以下查询,但是没有运气:
WHERE
(
(StartDate < ScopeStartDate AND StartDate > ScopeStartDate)
OR
(StartDate > ScopeStartDate AND EndDate < ScopeEndDate )
)
这将返回两个结果: 1和3
我究竟做错了什么?
我相信以下条件会匹配所有可能的重叠情况。
WHERE
(
(ScopeStartDate <= EndDate AND ScopeEndDate >= StartDate)
)
除非您声明了非逻辑时间跨度(例如,在开始之前结束的时间跨度)
问题内容: 该表用于存储会话(事件): 我们不想在范围之间产生冲突。 假设我们需要在 2010-01-05 至 2010-01-25之间 插入一个新会话。 我们想知道有冲突的会话。 这是我的查询: 结果如下: 有没有更好的方法来做到这一点? 小提琴 问题答案: 我曾经用日历应用程序进行过这样的查询。我想我使用了这样的东西: 更新 这肯定应该工作((ns,ne,es,ee)=(new_start,n
我的Java外汇应用程序处理工作时间。我在两个日期字段中有工作开始和结束时间。我成功地计算了两个日期之间的差异时间;但是现在我如何检查结果是在晚上还是白天的范围内???一天从6点开始,到22点结束。例如,有人在凌晨3点到晚上11点之间工作。下面是我如何计算总工作小时数的。 我们有可以工作到晚上10点以上的工人,工资也不一样。如果他们在晚上10点以后工作,他们将获得特殊报酬。我们在工作结束时付款。他
问题内容: 我有两个日期范围,(start1,end1)::: >> date1 &&(start2,end2)::: >> date2。 我想检查两个日期是否为OverLaped。 我的流程图 假定“ <> =”运算符对于比较是有效的。 } 任何建议将不胜感激。 问题答案: 您可以为此使用Joda-Time。 它提供指定开始时刻和结束时刻的类,并可以检查与的重叠。 就像是 版画 因为第一个间隔的
问题内容: 如果我在表中有2个日期列,并且。如何返回给定日期介于这两个日期之间的行?例如: 如果给定的日期是 它应该返回以下行 来自以下各行: sql可能吗? 我正在使用sql server 2008。 问题答案: 使用SQL Server,它实际上非常简单:
问题内容: 如果有和,如何检查用户给出的日期是否在该范围内? 例如 目前日期是字符串,将它们转换为时间戳整数是否有帮助? 问题答案: 使用strtotime将它们转换为时间戳是正确的方法,例如
问题内容: 我的数据库中有以下一组匹配日期的日期(dd / MM / yyyy): 事件具有开始和结束日期(时间无关紧要),并且endDate为NULL表示事件仍在进行中。 我想确定的是两个任意日期之间的日期范围,其中a)没有事件,b)事件重叠。 因此,对于输入日期范围01/04/2009-30/06/2009,我希望得到以下结果: 注意,作为结果,两个相邻的重叠范围是可以接受的。 谁能用SQL算