在C#上使用NoRM for MongoDB时,如何比较Where语句中的2个日期?

时间:2011-09-03 22:14:27

标签: mongodb-.net-driver norm

我在Mongo有一张桌子。其中一个字段是DateTime。我希望能够获得仅一天的所有记录(即2011年9月3日)。

如果我这样做:

 var list = (from c in col
             where c.PublishDate == DateTime.Now
             select c).ToList();

然后它不起作用,因为它在比较中使用时间。通常我会比较ToShortDateString(),但NoRM不允许我使用它。

思想?

大卫

1 个答案:

答案 0 :(得分:2)

处理此问题的最佳方法通常是计算相关日期的开始日期时间和结束日期时间,然后查询该范围内的值。

var start = DateTime.Now.Date;
var end = start.AddDays(1);
...

但是你也建议现在切换到官方的C#驱动程序。您还应该在数据库中使用UTC日期时间(但这会变得更复杂)。