当前位置: 首页 > 面试题库 >

如何比较一行中的重叠值?

江同化
2023-03-14
问题内容

我似乎对此SQL查询有疑问:

SELECT * FROM appts 
WHERE timeStart >='$timeStart' 
AND timeEnd <='$timeEnd' 
AND dayappt='$boatdate'

时间格式为军事时间。物流是可以在早上7点至下午1点或晚上9点至下午1点或晚上9点至下午5点预订船租。如果该范围内有一个appt,则应返回appts,但事实证明它不一致。如果我选择上午9点至下午1点,即使它与上午9点至下午1点重叠,它也会忽略从上午7点开始的应用。如果我选择9到5,即使应该是早上7点到下午1点,也不会返回任何内容。如何制作一个包含从timeStart到timeEnd的整个范围(包括那些重叠部分)的SQL语句?


问题答案:

正确的检查如下所示:

SELECT * FROM appts 
WHERE timeStart <='$timeEnd' 
AND timeEnd >='$timeStart' 
AND dayappt='$boatdate'

还给出了其他很好的解释,但我将继续进行介绍,并用我自己如何可视化的替代解释进行更新。考虑到两个时间段,大多数人都在寻找每个可能的重叠,他们试图考虑可以使约会重叠的开始和结束的每种组合。我认为这是因为两个时间段何时不重叠,出于某种原因,这对我来说比较容易。

假设我要检查的时间段是今天,我想查找今天不重叠的任何时间段。确实只有两种情况,时间段从今天开始(PeriodStart>
EndOfToday)开始,或者时间段从今天开始(PeriodEnd <StartOfToday)结束。

假设我们有一个不重叠的简单测试:
(PeriodStart> EndOfToday)或(PeriodEnd <StartOfToday)

快速浏览一下,您有一个简单的重叠测试:
(PeriodStart <= EndOfToday)AND(PeriodEnd> = StartOfToday)

-Shane



 类似资料:
  • 问题内容: 我有以下Pandas DataFrame,我想创建另一列来比较col1的前一行,以查看它们是否相等。最好的方法是什么?就像下面的DataFrame。谢谢 问题答案: 您需要使用: 或改为使用,但是在大型DataFrame中,它会稍微慢一些: 时间 :

  • 问题内容: 我正在使用sqlite数据库。我的表架构是 表中的内容是这样的: 我使用以下sql语句选择名称及其按名称和dt分组的相应分数总和。 我有 现在,我想扩展查询,以便sql语句可以搜索其分数总和在不同时间(dt)不变的内容。在这种情况下,输出应为: 如何编写这样的sql? 问题答案: 这可以通过自我(反)联接来实现:

  • 问题内容: 我有两个表,并且如果第二个表中存在行的确切副本,则需要从第一个表中删除行。 有没有人举过我如何在MSSQL Server中执行此操作的示例? 问题答案: 好吧,在某个时候,您将必须检查所有列-可能还需要加入… 应该可以做到……还有,但是这只会有所 帮助 -您仍然需要检查实际值以防止哈希冲突。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

  • 我有一个关于compareTo函数如何帮助比较器排序的问题,即o1。比较(o2)与o2。比较(o1) 如果两个字符串相等,则此方法返回0,否则返回正值或负值。如果第一个字符串在词典上大于第二个字符串,则结果为正,否则结果为负。 上面的陈述很简单,但是为什么o1.compare(o2)会给我一个升序,而o2.compare(o1)给了我一个降序? 如果我有整数值“5,10,3”,我得到3,5,10和

  • 下面是我试过的那段代码;也给出了输出。 我的问题是:我在

  • 问题内容: 我想比较同一张表中的两列。我希望能够返回两列具有相同值的所有行。 我正在寻找类似的东西。 因此,在下面的示例中,我将仅返回第一行: 如果有关系,我正在使用(更具体地讲)。 问题答案: 应该管用。不是吗 如果不是,它们是否具有相同的数据类型和长度?您可能需要转换。 我不了解WebSql,但是我看到一些数据库系统拒绝匹配,即使其中一个是varchar(5)而另一个是varchar(10),