如何在LINQ中减去两个日期?

时间:2019-04-16 05:51:35

标签: c# mysql entity-framework linq entity-framework-6

我在MySQL数据库中减去两个日期并将它们与int数字进行比较时遇到问题。我尝试使用dbfunctions.diffdays,但这是类型冲突。

启动应用程序时,我收到一条消息:

  

System.ArgumentException:'DbArithmeticExpression参数必须具有   数字通用类型。'

下面是我的代码     我

x.getVariable("var2");

3 个答案:

答案 0 :(得分:0)

您可以使用 System.Data.Objects.EntityFucntions

和代码中的

where ... &&
      EntityFunctions.DiffDays(Rezerwacje.DataDo, Rezerwacje.DataOd) > intervalDay

答案 1 :(得分:0)

 using System.Data.Entity;

 //code in LINQ
 ... DbFunctions.DiffDays(Rezerwacje.DataDo, Rezerwacje.DataOd) >= intervalDay

答案 2 :(得分:0)

最终我使用List和foreach。

从数据库下载数据:

public int DateCleanFloor1to2(DateTime dateTime)
{
            var dateList = (from Rezerwacje in db.Rezerwacje
                            join rooms in db.rooms on Rezerwacje.PokojID equals rooms.id
                            where (rooms.floor > 0 && rooms.floor <= 2) && (Rezerwacje.DataDo == dateTime)
                            select Rezerwacje).ToList();

            return SubtractDateToDateFrom(dateList, dateTime.AddDays(25));
 }

和带有foreach循环的方法:

public int SubtractDateToDateFrom(List<Rezerwacje> dateList, DateTime dateTime)
{
            int count = 0;
            foreach (var item in dateList)
            {
                if (item.DataDo < dateTime)
                {
                    count++;
                }
            }

            return count;
}

@DevilSuichiro @Arulkumar @Seven