使用实体框架,返回DateTime列的日期端口等于今天的所有行

本文关键字:于今天 今天 框架 实体 返回 日期 DateTime | 更新日期: 2023-09-27 18:18:09

我使用实体框架与MySql数据库工作。我有一个DateTime列,我想查询并返回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();