背景

业务需求中,需要根绝开始时间和结束时间筛选一段时间内的任务存在个数。

示例图片

根据开始时间 9:00到 结束时间11:00 筛选信息

总共有这么四种情况可能出现

插入测试数据

CREATE TABLE [dbo].[Schedule] (
[ScheduleId] int NOT NULL IDENTITY(1,1) ,
[ScheduleTheme] nvarchar(100) NOT NULL ,
[ScheduleContent] nvarchar(500) NULL ,
[ScheduleBeginTime] datetime NULL ,
[ScheduleEndTime] datetime NULL ,
[CreateTime] datetime NULL
)
INSERT INTO [Demo].[dbo].[Schedule] ( [ScheduleTheme], [ScheduleContent], [ScheduleBeginTime], [ScheduleEndTime], [CreateTime] ) VALUES ('测试标题001', '', '2020-07-04 10:00:00', '2020-07-08 11:00:00', GETDATE());
INSERT INTO [Demo].[dbo].[Schedule] ( [ScheduleTheme], [ScheduleContent], [ScheduleBeginTime], [ScheduleEndTime], [CreateTime] ) VALUES ('测试标题001', '', '2020-07-06 10:00:00', '2020-07-09 11:00:00', GETDATE());
INSERT INTO [Demo].[dbo].[Schedule] ( [ScheduleTheme], [ScheduleContent], [ScheduleBeginTime], [ScheduleEndTime], [CreateTime] ) VALUES ('测试标题001', '', '2020-07-04 10:00:00', '2020-07-06 11:00:00', GETDATE());
INSERT INTO [Demo].[dbo].[Schedule] ( [ScheduleTheme], [ScheduleContent], [ScheduleBeginTime], [ScheduleEndTime], [CreateTime] ) VALUES ('测试标题001', '', '2020-07-06 10:00:00', '2020-07-06 11:00:00', GETDATE());
INSERT INTO [Demo].[dbo].[Schedule] ( [ScheduleTheme], [ScheduleContent], [ScheduleBeginTime], [ScheduleEndTime], [CreateTime] ) VALUES ('测试标题001', '', '2020-07-01 10:00:00', '2020-07-04 11:00:00', GETDATE());
INSERT INTO [Demo].[dbo].[Schedule] ( [ScheduleTheme], [ScheduleContent], [ScheduleBeginTime], [ScheduleEndTime], [CreateTime] ) VALUES ('测试标题001', '', '2020-07-08 10:00:00', '2020-07-14 11:00:00', GETDATE());

示例LINQ 代码

var beginDate=new DateTime(“2020-07-07”);
var endDate=new DateTime(“2020-07-07”); var tasks = demo.Where(n =>
(n.ScheduleBeginTime > endDate && n.ScheduleBeginTime > beginDate)||
(n.ScheduleBeginTime > beginDate && n.ScheduleEndTime < endDate) ||
(n.ScheduleEndTime < endDate && n.ScheduleEndTime > beginDate) ||
(n.ScheduleEndTime > endDate && n.ScheduleBeginTime < beginDate);

sql 示例

SELECT * FROM Schedule WHERE 1!=1
or (ScheduleBeginTime < '2020-07-07' AND ScheduleBeginTime > '2020-07-05') --查询1种情况
or (ScheduleBeginTime > '2020-07-05' AND ScheduleEndTime < '2020-07-07' ) --查询2种情况
or (ScheduleEndTime < '2020-07-07' AND ScheduleEndTime > '2020-07-05') --查询3种情况
or (ScheduleEndTime > '2020-07-07' AND ScheduleBeginTime < '2020-07-05') --查询4种情况

【C#】根据开始时间和结束时间筛选存在的信息的更多相关文章

  1. bootstrap-datetimepicker 进一步跟进~~~开始时间和结束时间的样式显示

    上次简单介绍了一下:05.LoT.UI 前后台通用框架分解系列之——漂亮的时间选择器(http://www.cnblogs.com/dunitian/p/5524019.html) 这次深入再介绍一下 ...

  2. c# 获取 本周、本月、本季度、本年 的开始时间或结束时间

    #region 获取 本周.本月.本季度.本年 的开始时间或结束时间 /// <summary> /// 获取结束时间 /// </summary> /// <param ...

  3. My97DatePicker 日期控制,开始时间不能>结束时间,结束时间不能<开始时间

    <li>日期: <input type="text" style="margin-top: 5px;" value="${begin ...

  4. java获取本月开始时间和结束时间、上个月第一天和最后一天的时间以及当前日期往前推一周、一个月

    import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.uti ...

  5. easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大

    easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大 >>>>>>>>>>> ...

  6. project 2013 设置工期为1个工作日,但开始时间与结束时间不是同一天

    1.问题描述 project2013在工期栏输入  1  ,在开始时间结束时间点自动安排,就会出现如下情况,会被误认为是两天 2.问题解决 文件-->选项-->常规-->日期格式选择 ...

  7. C# 根据第几周和季度 获取开始时间和结束时间

    /// <summary> /// 根据第几周 获取开始时间和结束时间 /// </summary> /// <param name="week"&g ...

  8. My97DatePicker:开始时间和结束时间的最大间隔为1个月30天,并且不大于当前时间(3种方法)

    问题的背景 在之前做Web项目的时候,开始时间和结束时间,只有2个要求: 1.开始时间必须小于等于结束时间,不能超过当前时间. 2.结束时间必须大于等于开始时间,不能超过当前时间. 由于开始时间不大于 ...

  9. myDate97 设置开始时间和结束时间

      myDate97 设置开始时间和结束时间 CreationTime--2018年8月28日16点46分 Author:Marydon 1.简单示例 第一步:引入My97DatePicker/Wda ...

随机推荐

  1. vue通过属性绑定为元素绑定style行内样式

    1.直接在元素上通过:style绑定书写             <h1 :style="{color: 'red','font-size': '40px'}">这是一 ...

  2. Spring Cloud面试题万字解析(2020面试必备)

    1.什么是 Spring Cloud? Spring cloud 流应用程序启动器是 于 Spring Boot 的 Spring 集成应用程序,提供与外部系统的集成.Spring cloud Tas ...

  3. element ui 版本升级

    element ui 版本升级 1. 卸载之前版本 npm uninstall element-ui 2.重新安装element-ui npm i element-ui 3.就如package.jso ...

  4. IDEA开发工具使用 git 创建项目、拉取分支、合并分支

    转载自:https://blog.csdn.net/qq_39470733/article/details/80366435 工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下: 假设小组中有 ...

  5. ubuntu无法安装vim、tree等解决办法

    rm /etc/apt/sources.list.d/* 删除该目录下所有文件

  6. unable to load script from assets 'index.android bundle'

    在Android手机上运行React-native项目时 报错:unable to load script from assets 'index.android bundle'  ,make sure ...

  7. Eclipse中Debug时鼠标悬停不能查看变量值解决办法

    问题描述:Eclipse在Debug模式下,当鼠标移动到某个变量上面时不自动显示该变量对应的值. 解决方法:在Eclipse中点击 Window->Preferences->Java-&g ...

  8. mybatis源码配置文件解析之五:解析mappers标签流程图

    前面几篇博客分析了mybatis解析mappers标签的过程,主要分为解析package和mapper子标签.补充一张解析的总体过程流程图,画的不好,多多谅解,感谢.

  9. 记一次解密wireshark抓取的冰蝎通信流量

    一.关于冰蝎 1.1 简单介绍 冰蝎是一款基于Java开发的动态加密通信流量的新型Webshell客户端.老牌 Webshell 管理神器——中国菜刀的攻击流量特征明显,容易被各类安全设备检测,实际场 ...

  10. node实现文件属性批量修改(文件名)

    前言 书接上回,我们实现了批量修改文件的时间,但是却没有实现文件名称的批量修改,是因为我也说过,没有界面的话直接在命令行实现显得有点繁琐,所以我们就通过接口+界面的方式来实现我们这个小需求吧.所以,闲 ...