[英]How to subtract two dates in LINQ?
I have a problem with subtracting two dates in the MySQL database and comparing them to int numbers. 我有一个问题,在MySQL数据库中减去两个日期,并将它们与int数字进行比较。 I tried to use dbfunctions.diffdays however it is a conflict of types. 我试图使用dbfunctions.diffdays,但它是类型的冲突。
When I start the application I get a message: 当我启动应用程序时,我收到一条消息:
System.ArgumentException: 'DbArithmeticExpression arguments must have a numeric common type.' System.ArgumentException:'DbArithmeticExpression参数必须具有数字公共类型。'
Below is my code i 以下是我的代码i
int intervalDay = 25;
var dateCount = (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) && ((Rezerwacje.DataDo - Rezerwacje.DataOd).Days > intervalDay)
select Rezerwacje).Count();
return dateCount;
You could use System.Data.Objects.EntityFucntions
您可以使用System.Data.Objects.EntityFucntions
and in the code: 并在代码中:
where ... &&
EntityFunctions.DiffDays(Rezerwacje.DataDo, Rezerwacje.DataOd) > intervalDay
using System.Data.Entity;
//code in LINQ
... DbFunctions.DiffDays(Rezerwacje.DataDo, Rezerwacje.DataOd) >= intervalDay
Ultimately I use List and foreach. 最终我使用List和foreach。
Downloading data from database: 从数据库下载数据:
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));
}
And method with foreach loop: 和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 @DevilSuichiro @Arulkumar @Seven
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.