背景

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

示例图片

根据开始时间 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. 「从零单排canal 03」 canal源码分析大纲

    在前面两篇中,我们从基本概念理解了canal是一个什么项目,能应用于什么场景,然后通过一个demo体验,有了基本的体感和认识. 从这一篇开始,我们将从源码入手,深入学习canal的实现方式.了解can ...

  2. Perl如何安装新模块/包

    今天写Perl程序时需要调用到Tk模块,但是我机器上却没有T T. Perl小白,不知道肿么装新模块.网上搜了一下资料,和大家分享下. 本人机器Windows的系统,没法提供Unix或者Linux的测 ...

  3. elasticsearch 之 深入探秘type底层数据结构

    1.理论知识 type,是一个index中用来区分类似的数据的,类似的数据,但是可能有不同的fields,而且有不同的属性来控制索引建立.分词器.field的value,在底层的lucene中建立索引 ...

  4. 分布式系统框架Spring+Redis+SSO视频课程

    1.视频讲解的参看博客 这应该是第一个简单的分布式系统soa入门的基础,视频中对sao面向服务编程讲解的很透彻,第redis缓存讲解的也比较清楚,讲解了sso单点登录使用token的方式,还有cas实 ...

  5. postman无法正常启动

    想请教下各位大神,我电脑的postman打开之后就一直转,没法启动是怎么回事?重装了不同版本的也是同样的情况,重启电脑也没用...同样的安装包,在别的电脑上就能正常打开!有什么办法解决吗?  0 20 ...

  6. VScode和IntelliJ IDEA设置自动换行

    VScode自动换行 点击左上角的File-->Auto Save即可实现多文件的自动换行; IDEA自动换行 点击左侧空白处,选择Soft-Wrap就是当前文件自动换行,选择Configure ...

  7. Netty 源码解析(四): Netty 的 ChannelPipeline

    今天是猿灯塔“365篇原创计划”第四篇. 接下来的时间灯塔君持续更新Netty系列一共九篇 Netty 源码解析(一): 开始 Netty 源码解析(二): Netty 的 Channel Netty ...

  8. JavaScript图形实例:Hilbert曲线

    德国数学家David Hilbert在1891年构造了一种曲线,首先把一个正方形等分成四个小正方形,依次从西北角的正方形中心出发往南到西南正方形中心,再往东到东南角的正方形中心,再往北到东北角正方形中 ...

  9. Python——格式化GMT时间

    1.背景 最近在做视频上传去获取大小.时间的功能,视频是存在金山云的,由于金山sdk接口用例执行后返回的结果中的时间是http头部时间,时间格式为‘Tue, 08 May 2018 06:17:00 ...

  10. JavaScript学习 Ⅵ (正则表达式)

    十三. 正则表达式 正则表达式用于定义一些字符串的规则,计算机可以根据正则表达式,来检查一个字符串是否符合规则,将字符串中符合规则的内容提取出来. 创建正则表达式对象 构造函数 var reg = n ...