使用实体框架,返回DateTime列的日期端口等于今天的所有行
本文关键字:于今天 今天 框架 实体 返回 日期 DateTime | 更新日期: 2023-09-27 18:18:09
我使用实体框架与MySql数据库工作。我有一个DateTime列,我想查询并返回DateTime列值的日期部分在当前日期范围内的所有行。
我假设DateTime属性没有标准化到天,所以它可能在一天中有任何值。
留在实体框架领域最直接的方法可能是这样的:
DateTime today = DateTime.Today; // earliest time today
DateTime tomorrow = DateTime.Today.AddDays(1); // earliest time tomorrow
var q = db.Objects
.Where(x => x.Time >= today)
.Where(x => x.Time < tomorrow);
这是一种通用的技术,可以找到任何时间范围(不仅仅是特定的日子)。
如果表有或将有很多行,您将需要检查它是否被索引,以防止不得不扫描整个表。
使用LINQ处理实体:
private readonly Entities _db = new Entities();
var entities = (from t in _db.table
where t.dateColumn.Date.Equals(DateTime.Today)
select t);
像这样?
SELECT ??? FROM YourTable WHERE DATE(dateTime) = DATE(NOW());
我认为他的意思是datetime字段的日期部分是今天的日期,对吗?在这种情况下,像这样的代码可以工作:
SELECT CAST(yourdatecol AS DATE) FROM thetable WHERE CAST(yourdatecol AS date) = CURDATE();