Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MongoDB的C驱动程序在查询datetime时无法准确工作_C#_Mongodb - Fatal编程技术网

C# MongoDB的C驱动程序在查询datetime时无法准确工作

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

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>> 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是的。这就是问题所在。谢谢