获取特定月份和年份内的交易数量

时间:2013-04-02 16:40:25

标签: c# linq

我知道如何获得交易次数,但我如何获得特定月份的点数呢?

如果我想要2013年3月的交易?

这是我当前的查询:

  textBox_PaymentsCount.Text = 
       (from tot in _entities.Payments
        where tot.CorporationId == _currentcorp.CorporationId && 
         tot.Result != null
          select tot).Count().ToString(CultureInfo.InvariantCulture);

我需要按字段TransactionDateTime最小化我的查询。

我尝试指定第一天和最后一天,但最后一天因月而异。

有没有一种简单的方法可以做到这一点?

6 个答案:

答案 0 :(得分:2)

  

但最后一天因月而异。

您可以使用当前和下个月的第一天,并在下个月使用<

&& TransactionDateTime >= firstDayOfThisMonth 
&& TransactionDateTime < firstDayOfNextMonth

答案 1 :(得分:2)

我认为你正在寻找这样的东西:

where tot.TransactionDateTime.Year == year && tot.TransactionDateTime.Month == month

答案 2 :(得分:1)

where子句中添加其他条件并使用DateTime.MonthDateTime.Year属性:

tot.DateProperty.Month == 3 && tot.DateProperty.Year == 2013

整个查询应如下所示:

textBox_PaymentsCount.Text = 
    (from tot in _entities.Payments
     where tot.CorporationId == _currentcorp.CorporationId && 
     tot.Result != null &&
     tot.DateProperty.Month == 3 && tot.DateProperty.Year == 2013
     select tot).Count().ToString(CultureInfo.InvariantCulture);

答案 3 :(得分:0)

尝试:

var from = new DateTime(2013, 1, 1);
var until = new DateTime(2013, 2, 1);

....
where tot.CorporationId == _currentcorp.CorporationId 
&& tot.Result != null
&& tot.TransactionDateTime > from && tot.TransactionDateTime < until
....

答案 4 :(得分:0)

第一天i = 1 最后一天= 30或31或28/29 创建一个结构,将月份与相应的最后日期相关联 并按月输入 这将是相应的最后一天 然后会计算出没有。特定月份的交易

答案 5 :(得分:0)

从TrasanctionDateTime

获取月份和年份

tot.TransationDate.Year == year&amp;&amp; tot.Transaction.Month == month