2011-07-10 126 views
0

我有一个LINQ到SQL查询,通过分组它在天检索特定月份的数据的工作原理:与时区LINQ查询GROUPBY

var Output = from c .... 
      where .... // this is the month parameter 
      group c by c.TheTime.Date into daygroups 
      select new MyModel(){ 

       Prop1 = (from x in daygroups 
         where.... 
         select x.ID).Count() 
}.ToList(); 

的问题是,这个群体由日期时间而言的服务器时间。我想按照时间间隔将它们分组,以便如果我们在加利福尼亚州时间查看结果,我们确实在查看从PST午夜开始的一系列日期。

该查询返回一个计数。我现在想出的解决方案是在某个时区返回所有月初和月底之间的原始数据,然后用正确的时区重新排列原始数据,然后才进行计数。

有没有更好的方法来做到这一点?

回答

0

尝试按c.TheTime.Date.AddHours(-8)分组。
但是,我不确定这是否会正常工作。

+0

看起来像不起作用:我得到“datepart毫秒不支持日期函数dateadd数据类型日期。”例外。我要查询所需时间范围内的项目的整个历史记录,并使用linq-to-sql进行分组和计数。每天可能有大约300件物品;通过对服务器上的组进行计数来查询原始数据,性能会受到怎样的影响? – frenchie