[英]How to subtract two dates in LINQ?
我有一個問題,在MySQL數據庫中減去兩個日期,並將它們與int數字進行比較。 我試圖使用dbfunctions.diffdays,但它是類型的沖突。
當我啟動應用程序時,我收到一條消息:
System.ArgumentException:'DbArithmeticExpression參數必須具有數字公共類型。'
以下是我的代碼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;
您可以使用System.Data.Objects.EntityFucntions
並在代碼中:
where ... &&
EntityFunctions.DiffDays(Rezerwacje.DataDo, Rezerwacje.DataOd) > intervalDay
using System.Data.Entity;
//code in LINQ
... DbFunctions.DiffDays(Rezerwacje.DataDo, Rezerwacje.DataOd) >= intervalDay
最終我使用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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.