sql之按时间段查询时间段(时间段取交集)

在一些需求中,可能会出现按时间段查询时间段的逻辑,也就是说前端传的有一个开始时间和一个结束时间参数,数据库中也有一个开始时间和一个结束时间字段,我们需要取这两者的交集。

那么一开始会想着把所有的情况的条件都写到sql中,如下。
在这里插入图片描述

由此得出如下公式:

S1 < S2 and E1 <  E2
or
S1 > S2 and E1 > E2
or
S1 < S2 and E1 > E2
or
S1 > S2 and E1 < E2

但你会发现,这样的查询很费劲,而且很难理解。于是乎,我们反向思考,既然查交集费劲,那我们可以查不交集的,然后通过not取反条件不就好了。
在这里插入图片描述

公式:

E1 < S2 or S1 > E2

取反:

not (E1 < S2 or S1 > E2)

下面是sql参考

select book_id, book_name
from book
where not (start_time > '2023-12-20 10:30:00' or end_time < '2023-12-20 08:00:00')

xml是这样的

select book_id, book_name
from book
where not (start_time &gt; #{endTime} or end_time &lt; #{startTime})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/293006.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

eventbus,在this.$on监听事件时无法在获取数据

问题&#xff1a;vue中eventbus被多次触发&#xff0c;在this.$on监听事件时&#xff0c;内部的this发生改变导致&#xff0c;无法在vue实例中添加数据。 项目场景 一开始的需求是这样的&#xff0c;为了实现两个组件(A.vue ,B.vue)之间的数据传递。 页面A&#xff0c;点击页面…

图灵日记之java奇妙历险记--数据类型与变量运算符

目录 数据类型与变量字面常量数据类型变量语法格式整型变量浮点型变量字符型变量希尔型变量类型转换自动类型转换(隐式)强制类型转换(显式) 类型提升不同数据类型的运算小于4字节数据类型的运算 字符串类型 运算符算术运算符关系运算符逻辑运算符逻辑与&&逻辑或||逻辑非…

为什么越来越多公司开始用低代码开发?

时代洪流的走向&#xff0c;我们无法左右&#xff0c;能够把握的&#xff0c;只有做好自己。如何在寒冬来之不易的机会中&#xff0c;生存并且壮大。 不知道大家有没有发现&#xff0c;今年的低代码赛道异常火热&#xff0c;但火热的背后才值得思考&#xff0c;市场需求持续被挖…

简单的图片跑马灯效果

效果展示&#xff1a;gif 因速度太快展示不够流畅 实现方式 <div class"banner"><img class"img1" :src"image" v-for"(image, index) in imgs" :key"index" /></div><div class"banner"&…

15个热门的开源数据可视化项目

数据可视化(即 BI仪表盘)是图形表示的数据。它涉及产生将表示的数据之间的关系传达给图像查看者的图像。这种通信是通过在可视化过程中使用图形标记和数据值之间的系统映射来实现的。该映射建立了如何在视觉上表示数据值,确定图形标记的属性(例如大小或颜色)如何以及在多大程…

Modbus-TCP数据帧

Modbus-TCP基于4种报文类型 MODBUS 请求是客户机在网络上发送用来启动事务处理的报文MODBUS 指示是服务端接收的请求报文MODBUS 响应是服务器发送的响应信息MODBUS 证实是在客户端接收的响应信息 Modbus-TCP报文: 报文头MBAP MBAP为报文头&#xff0c;长度为7字节&#xff0c…

微服务与人工智能技术的融合

随着人工智能技术的快速发展&#xff0c;越来越多的企业开始关注微服务架构与人工智能技术的结合&#xff0c;以期在市场竞争中获得更大的优势。本文将深入探讨微服务架构与人工智能技术融合的优势、挑战&#xff0c;以及实现这一融合的最佳实践和方法。 首先&#xff0c;让我们…

RflySim | 姿态控制器设计实验三

RflySim | 姿态控制器设计实验三 一.分析实验 1.调节PID控制器相关参数以改善控制性能并记录超调量和调节时间&#xff0c;得到一组恰当参数&#xff1b; 2.使用调试后的参数&#xff0c;对系统进行扫频以绘制Bode图&#xff0c;观察系统幅频响应,相频响应曲线&#xff0c;分…

自媒体人福音,正版实用的视频素材网站~

大家平时在创作视频的时候&#xff0c;有没有苦恼过找不到合适的素材呢&#xff1f;网上能找到的大部分素材都是有版权的&#xff0c;不能随便乱用。今天我就来给大家推荐一些用于视频创作的正版素材网站&#xff0c;快快收藏吧! 1.制片帮素材 链接&#xff1a;stock.zhipianb…

玩转Instagram Shop只需要学会这些功能

Instagram Shop作为Instagram下属的电商购物平台。用户可以通过浏览Instagram上的推荐产品和品牌&#xff0c;在无需离开应用的情况下了解并购买新的商品。对于经常使用Instagram的用户来说是个很便捷的购物渠道。面对这个新渠道&#xff0c;我们又该如何玩转它呢。这篇文章就会…

crontab+shell脚本实现数据库定时备份

在工作场景中我们经常会遇到定时备份数据库的需求&#xff0c;这里写一个案例使用crontabshell脚本实现。 1. 实现目标 要求每天凌晨12点备份test数据库&#xff0c;并且将备份文件放到/home/mysql_backup目录下&#xff0c;文件名为backup_数据库名.年-月-日.sql.gz 2. 脚本…

Linux线程

文章目录 线程线程原理页表线程VS进程线程相关函数pthread_create函数pthread_selfpthread_exitpthread_cancelpthread_joinpthread_detach 线程ID 线程 什么是线程&#xff1f;为什么要有线程&#xff1f; 线程本质上就是轻量化的进程&#xff0c;一个进程就是一个执行流&…