问题:Linq中比较两个时间的年月日部分
表中某个字段的时间和系统时间比较大小(只比较年月日)
思路一:转换成字符串比较
var queryable = dbContext.Table
.Where(p => p.ETime.ToString("yyyy-MM-dd") >= DateTime.Now.ToString("yyyy-MM-dd")
异常:字符串无法比较
思路二:先转换成字符串,再转换成DataTime比较
var queryable = dbContext.Table
.Where(p => Convert.ToDateTime(p.ETime.ToString("yyyy-MM-dd"))
>= Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"))
异常:调用ToDateTime方法失败
思路三:当前时间和系统时间(系统时间转换成仅包含年月日)
DateTime dtToday = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"));
var queryable = dbContext.Table
.Where(p => p.ETime >= dtToday)
Sqlserver中按日期的年月日比较:
CONVERT(varchar(12),v.ETime,112)>=CONVERT(varchar(12),GETDATE(),112)
本月内+今天
private DateTime dtMonthFirstday = Convert.ToDateTime(new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).ToString("yyyy-MM-dd"));
private DateTime dtToday = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"));
private DateTime dtNexDay = Convert.ToDateTime(DateTime.Now.AddDays(1).ToString("yyyy-MM-dd"));
--今天
Where(p => p.Created >= dtToday && p.Created < dtNexDay).Count();
--当月
Where(p => p.Created >= dtMonthFirstday).Count();
LINQ中判断日期时间段
1、目的:用LINQ查询出在日期为今天的数据或者近7天的数据
2、解决:
1)、定义
DateTime dtToday = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"));//今天
DateTime dtNexDay = Convert.ToDateTime(DateTime.Now.AddDays(1).ToString("yyyy-MM-dd"));//明天
DateTime dtWeekDay = Convert.ToDateTime(DateTime.Now.AddDays(7).ToString("yyyy-MM-dd"));//一周
DateTime dtMonthFirstday = Convert.ToDateTime(new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).ToString("yyyy-MM-dd"));//本月
DateTime dtThreeMonth = Convert.ToDateTime(new DateTime(DateTime.Now.Year, DateTime.Now.AddMonths(-3).Month,
2)、LINQ
var query = db.Query<Teacher>().Where(c=>c.Date>dtToday&&c.Date<dtNexDay)
本文探讨了如何在Linq中有效比较时间字段的年月日部分,包括字符串转换、DateTime对象操作及实际应用场景,如查询今天或近期内的数据。还介绍了如何使用LINQ进行日期时间段的筛选和查询特定条件下的记录。
374

被折叠的 条评论
为什么被折叠?



