2016-01-23 59 views
0

我的日期时间列在我的数据库中,得到像2016-01-23 14:47:00价值。 我想从过去2个月的12:00:00到15:00:00之间得到结果。 我使日期时间变量,但它得到今天的日期。比较时间只linq sql与时间响

var q11 = DateTime.Parse("12:00:00 AM"); 
var q12 = DateTime.Parse("03:00:00 AM"); 
cq11 += _db.deliverys.Where(r => r.mainid == item.id && 
           r.state == true && 
           r.readtime >= q11 && 
           r.readtime <= q12).Count(); 

回答

1

因此,根据您的数据集和解决方案的更大范围,这可能不是理想的解决方案,因为我不认为TimeOfDay被转换为sql。这将使用mainid和state查询将数据集拉到内存中,然后使用一天中的时间和时间跨度在内存中进一步过滤。

TimeSpan start = new TimeSpan(12, 0, 0); //NOON 
TimeSpan end = new TimeSpan(15, 0, 0); //3 PM 

var subQuery = _db.deliverys.Where(r => r.mainid = item.id && r.state == true).ToList(); 

var results = subQuery.Where(q => (q.TimeOfDay > start) && (q.TimeOfDay < end)); 

我有在内存列表测试,它拉回跨多个月的日期。

+0

我需要在2个月的时间内获得价值。我只会比较一天的时间。 – Zenith

+0

@ Zenith更新了答案 – drneel