sql - 日期范围之间的日期范围
问题描述
我正在编写一个 SQL 查询,我必须在其中找到日期范围内的结果。
我有四个参数 OEFrom(保存在 DB)OETo(保存在 DB)To & From(用户提供)。
我的查询有点像
select * from tblName where OEFrom>=From and To>=OETo
问题是此查询仅在 To 和 From 位于 OEFrom 和 OETo 之间时才有效。如果它们位于外部,则不会返回结果。根据我对它的理解,我有 4 种情况: * 1. OEFrom>From and OEToFrom and OETo>To 3. OEFromTo
考虑到所有这些情况,有没有办法可以编写查询。
解决方案
如果您想要任何重叠,请使用以下逻辑:
select *
from tblName
where OEFrom <= To AND
OETo >= From;
如果每个范围都在另一个结束之前开始(或者在这种情况下,如果要包括端点,则在此之前或之前),则两个范围重叠。
推荐阅读
- python - 车辆在仓库重新装载并继续
- amazon-web-services - 如何将 JSON 上传到 AWS CloudSearch
- python - 如何在循环中增加重复值(.001 到 .002)
- php - 在 MYSQL 数据库 Codeigniter 中搜索
- php - PHP - 我如何提取 7z 扩展
- ios - 如何在不重新启动应用程序 swift4 的情况下更改本地化语言?
- java - 摆动应用程序中的线程“AWT-EventQueue-0”java.lang.NullPointerException 中的异常
- android - 自动调整 TextView 以在画布上绘制
- reactjs - React Navigation - 嵌套导航器
- firebase - 在 Google Firebase 托管上使用 Nuxt 和 Axios