首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# linq 日期统计查询有关问题

2012-06-20 
C# linq 日期统计查询问题数据库 表有datetime 字段dtime2010.1.22010.2.32010.3.42010.3.52011.5.52011.5

C# linq 日期统计查询问题
数据库 表有datetime 字段

dtime
2010.1.2
2010.2.3
2010.3.4
2010.3.5
2011.5.5
2011.5.7
2011.6.1


要求统计结果

2010 年 4
  1 月 1
  2 月 1
  3 月 2
2011 年 3
  5 月 2
  6 月 1

求 linq 查询统计 语句 


[解决办法]

C# code
            var query = from p in DB.你的表                              group p by p.时间.Value.Year into g                              select new { g.Key ,count = g.Count()};
[解决办法]
static void Main(string[] args)
{
DataTable dt = new DataTable();
dt.Columns.Add("datetime", typeof(DateTime));
dt.Rows.Add("2010.1.2");
dt.Rows.Add("2010.2.3");
dt.Rows.Add("2010.3.4");
dt.Rows.Add("2010.3.5");
dt.Rows.Add("2011.5.5");
dt.Rows.Add("2011.5.7");
dt.Rows.Add("2011.6.1");
var source= dt.AsEnumerable().GroupBy(t => t.Field<DateTime>("datetime").ToString("D").Substring(0, 5));
foreach (var s in source)
{
Console.WriteLine(s.Key+" "+s.Count());
foreach(var temp in s)
{
Console.WriteLine(temp.Field<DateTime>("datetime").Month+"月"+temp.Field<DateTime>("datetime").Day+"日");
}
}
Console.ReadLine();
}
[解决办法]
C# code
            DataTable dtime = new DataTable();            dtime.Columns.Add("dtime", typeof(DateTime));            dtime.Rows.Add("2010.1.2");            dtime.Rows.Add("2010.2.3");            dtime.Rows.Add("2010.3.4");            dtime.Rows.Add("2010.3.5");            dtime.Rows.Add("2011.5.5");            dtime.Rows.Add("2011.5.7");            dtime.Rows.Add("2011.6.1");            var datequery = from td in dtime.AsEnumerable()                            group td by td.Field<DateTime>("dtime").Year into g                            select g;            foreach (var sk in datequery)            {                Console.WriteLine(sk.Key + " 年 " + sk.Count());                foreach (var sk1 in sk.GroupBy(m => m.Field<DateTime>("dtime").Month))                {                    Console.WriteLine(sk1.Key + " 月 " + sk1.Count());                }            }/*2010 年 4  1 月 1  2 月 1  3 月 22011 年 3  5 月 2  6 月 1*/
[解决办法]
C# code
            DataTable dt = new DataTable("test");            dt.Columns.Add(new DataColumn("dtime", typeof(DateTime)));            dt.Rows.Add("2010.1.2");            dt.Rows.Add("2010.2.3");            dt.Rows.Add("2010.3.4");            dt.Rows.Add("2010.3.5");            dt.Rows.Add("2011.5.5");            dt.Rows.Add("2011.5.7");            dt.Rows.Add("2011.6.1");            var group1 = dt.AsEnumerable().GroupBy(r => r.Field<DateTime>("dtime").Year);            foreach (var g in group1)            {                Console.WriteLine("{0}年 {1}", g.Key, g.Count());                var group2 = g.GroupBy(r => r.Field<DateTime>("dtime").Month);                foreach (var g2 in group2)                {                    Console.WriteLine("{0}月{1}", g2.Key, g2.Count());                }                            } 

热点排行