我正在使用实体框架来处理 MySql 数据库。我有一个 DateTime 列,我想查询并返回 DateTime 列值的日期部分在当天范围内的所有行。
问问题
4008 次
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 回答