linq查询一个时间的语句怎么写

起始页面是查询所有数据,当输入日期条件2017-5-1(time)查询该日期数据、
通过下方好人的提示,已跪 请路过好人请解答。 优化代码这样相当于查询时查询了三次
public ActionResult Contenttimet(DateTime? time)
{
var query1 = (from a in _db.ContentTime select a).ToList();
var query3 = query1.Select(s => new
{
s.ID,
Time = s.Time.ToString("yyyy-MM-dd")
});
if (time != null)
query3 = query1.Where(s => DateTime.Compare((DateTime)time, s.Time) == 0).Select(s => new
{
s.ID,
Time = s.Time.ToString("yyyy-MM-dd")
});

return Json(query3.ToList(), JsonRequestBehavior.AllowGet);
}

1个回答

用DateTime.Compare函数

DateTime comparedDateTime = new DateTime(2017, 5, 1, 0, 0, 0);


//time是传入函数的参数,comparedDateTime是2017-5-1,返回0说明相等
where DateTime.Compare(time, comparedDateTime) == 0

time和2017-5-1应该是相同的datetime格式,这个地方可能需要你调试一下。

Mr_Mmang_YQ
Mr_Mmang_YQ 回复战在春秋: 可以查询但是开始的查询所有语句那段语句不执行了,断点都不进,选了日期查询单条可以
2 年多之前 回复
fight_in_dl
战在春秋 回复Mr_Mmang_YQ: 题目中问的是where( time=>t.Time)这句怎么写,我的答案是针对这个问题,确定是这么写。整个代码能否走通还需要你调试
2 年多之前 回复
fight_in_dl
战在春秋 回复Mr_Mmang_YQ: where DateTime.Compare(time, DateTime.Now) < 0
2 年多之前 回复
fight_in_dl
战在春秋 回复Mr_Mmang_YQ: 是这么写,t不是query1得到的吗,这块有没有问题,不行你用time 和 DateTime.Now 比较一下
2 年多之前 回复
Mr_Mmang_YQ
Mr_Mmang_YQ where DateTime.Compare(time, t.Time)==0 这样写吗 ? t.Time 表里的时间。 数据都不出来了
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问