时间连接查询展示
2016-11-15 17:45 小白admin 阅读(338) 评论(0) 编辑 收藏 举报实例:搜索条件:2016年11月1号到10号的数据,
数据库中只有3号,6号,7号,8号,9号有数据,但是没有数据的也需要展示,数据可以显示为“-”。
DayList中的时间:["2016-11-03,2016-11-06,2016-11-07,2016-11-08,2016-11-09"]
开始时间: startTime;结束时间:endTime
//新建一个时间集合 左关联
List<TimeList> TimeList = new List<TimeList>();
//搜索时间小时差 DateTime.Now.ToShortDateString().ToString();
TimeSpan ts = endTime - startTime;
int Days = ts.Days;
//时间差,总共几天
for (int i = 0; i < Days+1; i++)
{
DateTime NewTime = startTime.AddDays(i);
TimeList.Add(new TimeList()
{
MONIDATE = NewTime
});
}
var dataT = (
from d in TimeList
join s in DayList on d.MONIDATE equals s.MONIDATE into temp
from tt in temp.DefaultIfEmpty()
select new
{
//基本信息
MONIDATE = (tt != null) ? tt.MONIDATE.ToString("yyyy-MM-dd") : d.MONIDATE.ToString("yyyy-MM-dd"),
Name= (tt != null) ? tt.Name: "-",
Age= (tt != null) ? tt.Age: "-"
});
public class TimeList
{
public DateTime MONIDATE { get; set; }
}
如有好的办法,请大神多多指教!