C# MongoDB的C驱动程序在查询datetime时无法准确工作
my MongoDB中有一个文档:C# MongoDB的C驱动程序在查询datetime时无法准确工作,c#,mongodb,C#,Mongodb,my MongoDB中有一个文档: { "_id" : ObjectId("5624e8c8470b460f1cf1c323"), "body" : "【ex】test", "datetime" : ISODate("2015-10-19T12:57:41.836Z"), "source" : "wx", "title" : "for test" } 下面是我的查询方法: public Task<List<InfoLogModel>> GetLogB
{
"_id" : ObjectId("5624e8c8470b460f1cf1c323"),
"body" : "【ex】test",
"datetime" : ISODate("2015-10-19T12:57:41.836Z"),
"source" : "wx",
"title" : "for test"
}
下面是我的查询方法:
public Task<List<InfoLogModel>> GetLogByFilter(DateTime? startAt = null, DateTime? endAt = null)
{
var collection = //...
List<FilterDefinition<InfoLogModel>> QueryConditionList = new List<FilterDefinition<InfoLogModel>>();
if (startAt != null)
QueryConditionList.Add(Builders<InfoLogModel>.Filter.Gte(aa => aa.datetime, (BsonDateTime)startAt));
if (endAt != null)
QueryConditionList.Add(Builders<InfoLogModel>.Filter.Lte(aa => aa.datetime, (BsonDateTime)endAt));
var filter = Builders<InfoLogModel>.Filter.And(QueryConditionList);
return collection.Find(filter).ToListAsync();
}
很奇怪,当我的startAt是DateTime.Parse2015/10/20时,结果计数是0,这很好
但是当我设置startAt=DateTime.Parse2015/10/19 20:00:00时,我意外地得到了文档
文档的日期时间是2015/10/19 12:57:41,即使我过滤了文档,我也能得到它。你的时区是什么?datetime是UTC,但startAt是本地时间。@JohnnyHK是的。这就是问题所在。谢谢