.NET CORE LinQ查詢中計算時間差


項目中有這樣一個需求:

當客戶端輸入一個數值,后端需要過濾兩個時間差的秒數是該數值再返回數據

1錯誤的方法

一開始直接使用了C#中的時間計算方法

int second=20;
if (second > 0)
  {
     list = list.Where(p => (p.EndTime - p.StartTime).TotalSeconds >= second);
  }

以上使用TotalSeconds 前端獲取數據時候就會報錯。

2在 .NET Framework 中我可以通過 DbFunctions.DiffDays 來實現此需求

3在 .NET Core 中我可以使用 SQL 提供的原生函數EF.Functions.DateDiffSecond

int second=20;
if (second > 0)
  {
     list = list.Where(p => EF.Functions.DateDiffSecond(p.StartTime,p.EndTime) >= second);
  }

EF.Functions還有許多方法,計算天數,小時數,分鍾數等等。。。

官方文檔


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM