对年-月-日时间类型进行比较
由于业务要求,需要添加查询,而查询的时间格式为“2018-05-13”;数据库的时间格式为“2018-05-10 17:32:31”
var entity = context.Infomations.OfType<Docments>().Where(f => (!param.TypeId.HasValue || f.TypeId == param.TypeId) //Docments模型继承于Infomations && (string.IsNullOrEmpty(param.Title) || f.Title.Contains(param.Title)) && (!param.Level.HasValue || f.Level == param.Level) && (!param.IsValid.HasValue || f.IsPublish == param.IsValid) && (!param.BeginTime.HasValue || f.CreateTime >= param.BeginTime) && (!param.EndTime.HasValue || f.CreateTime <= param.EndTime)).OrderByDescending(f =>f.CreateTime).ToList();
这里存在一个问题,就是当开始时间和结束时间选择同一天时,筛选不出来。如选择2018-05-08,这时开始时间和结束时间均为“2018-05-08 00:00:00”,这只能取出创建时间为“2018-05-08 00:00:00”的数据,而不是这一天的数据;
方案一:在进行筛选值钱给结束时间加上一天
param.EndTime = param.EndTime.Value.AddDays(1);
时间范围变成:“2018-05-08 00:00:00”----“2018-05-09 00:00:00”
方案二:将开始时间和结束时间进行字符串拼接成(“2018-05-08 00:00:00”----“2018-05-09 23:59:59”),再转为时间类型进行比较
string startTimeStr = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00"; DateTime startTime = DateTime.Parse(startTimeStr); string endTimeStr = DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59"; DateTime endTime = DateTime.Parse(endTimeStr); Console.WriteLine(startTime); Console.WriteLine(endTime);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】