0

我知道如何获取交易数量,但如何获取特定月份发生的交易数量?

例如,如果我想要 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

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

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

4

6 回答 6

2

但最后一天因月而异。

您可以只使用当前和下个月的第一天,然后使用<下个月:

&& TransactionDateTime >= firstDayOfThisMonth 
&& TransactionDateTime < firstDayOfNextMonth
于 2013-04-02T16:42:36.083 回答
2

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

where tot.TransactionDateTime.Year == year && tot.TransactionDateTime.Month == month
于 2013-04-02T16:43:43.273 回答
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);
于 2013-04-02T16:43:50.470 回答
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
....
于 2013-04-02T16:44:29.653 回答
0

第一天 i = 1 和最后一天 = 30 或 31 或 28 / 29 创建一个将月份链接到对应最后日期的结构,根据月份输入,它将采用相应的最后一天,然后计算编号。给定月份的交易量

于 2013-04-02T16:45:55.530 回答
0

只需从您那里获取月份和年份 TrasanctionDateTime

tot.TransationDate.Year == 年 && tot.Transaction.Month == 月

于 2013-04-02T16:52:33.320 回答