1

我正在使用实体框架来处理 MySql 数据库。我有一个 DateTime 列,我想查询并返回 DateTime 列值的日期部分在当天范围内的所有行。

4

4 回答 4

6

我假设 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);

这是一种通用技术,可以找到任何时间范围(不仅仅是特定日期)。

如果表有或将有很多行,您需要检查它是否已编入索引以防止扫描整个表。

于 2013-06-12T01:50:38.927 回答
2

使用 LINQ 到实体:

private readonly Entities _db = new Entities();

var entities = (from t in _db.table
                    where t.dateColumn.Date.Equals(DateTime.Today)
                    select t);
于 2013-06-11T22:37:33.193 回答
1

像这样?

SELECT ??? FROM YourTable WHERE DATE(dateTime) = DATE(NOW());
于 2013-06-11T22:14:23.560 回答
1

我认为他的意思是日期时间字段的日期部分是今天的日期,对吗?在这种情况下,这样的事情会起作用:

SELECT CAST(yourdatecol AS DATE) FROM thetable WHERE CAST(yourdatecol AS date) = CURDATE();
于 2013-06-11T22:24:12.600 回答