在 mongodb 查询中将日期从 iso 日期格式转换为 utc
Convert date from iso date format to utc in mongodb query
我是 mongodb 的新手 driver.i 我正在尝试过滤从 06-08-2015 到 06-08-2015 的两个日期之间的文档。这是我的代码
IMongoQuery querySubmissionDateFrom = Query<ReviewMDO>.GTE(m => m.SubmissionData.SubmissionDate,manuscriptFilterDocument.Filter.SubmissionFromDate.Date);
queryFilter.Add(querySubmissionDateFrom);
你可以看到我的manuscriptFilterDocument.Filter.SubmissionFromDate.Date 归档包含值“06-08-2015 00:00:00”。因为在mongodb 日期自动转换为iso 日期formate.how 可以我将其转换为 UTC 日期格式以进行比较。
但将此添加到查询列表后,日期值将转换为 isodate 格式
尝试 LINQ 到 MongoDB:
var collection = database.GetCollection<TDocument>("collectionname");\
var query =
from e in collection.AsQueryable<Employee>()
where e.FirstName == "John"
select e;
编辑
以下是您的代码的等价物:
var collection = database.GetCollection<ReviewMDO>("collectionname");
var query =
from m in collection.AsQueryable<ReviewMDO>()
where m.SubmissionData.SubmissionDate >= querySubmissionDateFrom
select m;
最后我 it.i 与其他人分享我的答案 reference.i 像这样更改了我的代码
我使用 DateTime.SpecifyKind() 函数将日期时间转换为 UTC
IMongoQuery querySubmissionDateFrom = Query<ReviewMDO>.GTE(m => m.SubmissionData.SubmissionDate, DateTime.SpecifyKind(manuscriptFilterDocument.Filter.SubmissionFromDate.Date, DateTimeKind.Utc) );
queryFilter.Add(querySubmissionDateFrom);
您可以使用 Lambda 实现此目的
var date = DateTime.Now;
var results = Collection.Find(x => x.SubmissionDate >= date).ToList();
或者与 Builders 做同样的事情
var filter= Builders<ReviewMDO>.Filter.Gte(x => x.SubmissionDate, date);
var results = Collection.Find(filter).ToList();
我是 mongodb 的新手 driver.i 我正在尝试过滤从 06-08-2015 到 06-08-2015 的两个日期之间的文档。这是我的代码
IMongoQuery querySubmissionDateFrom = Query<ReviewMDO>.GTE(m => m.SubmissionData.SubmissionDate,manuscriptFilterDocument.Filter.SubmissionFromDate.Date);
queryFilter.Add(querySubmissionDateFrom);
你可以看到我的manuscriptFilterDocument.Filter.SubmissionFromDate.Date 归档包含值“06-08-2015 00:00:00”。因为在mongodb 日期自动转换为iso 日期formate.how 可以我将其转换为 UTC 日期格式以进行比较。
尝试 LINQ 到 MongoDB:
var collection = database.GetCollection<TDocument>("collectionname");\
var query =
from e in collection.AsQueryable<Employee>()
where e.FirstName == "John"
select e;
编辑
以下是您的代码的等价物:
var collection = database.GetCollection<ReviewMDO>("collectionname");
var query =
from m in collection.AsQueryable<ReviewMDO>()
where m.SubmissionData.SubmissionDate >= querySubmissionDateFrom
select m;
最后我 it.i 与其他人分享我的答案 reference.i 像这样更改了我的代码
我使用 DateTime.SpecifyKind() 函数将日期时间转换为 UTC
IMongoQuery querySubmissionDateFrom = Query<ReviewMDO>.GTE(m => m.SubmissionData.SubmissionDate, DateTime.SpecifyKind(manuscriptFilterDocument.Filter.SubmissionFromDate.Date, DateTimeKind.Utc) );
queryFilter.Add(querySubmissionDateFrom);
您可以使用 Lambda 实现此目的
var date = DateTime.Now;
var results = Collection.Find(x => x.SubmissionDate >= date).ToList();
或者与 Builders 做同样的事情
var filter= Builders<ReviewMDO>.Filter.Gte(x => x.SubmissionDate, date);
var results = Collection.Find(filter).ToList();