我正在嘗試獲取過去三周內未登錄的用戶。我聽說過要使用的方法 Min 和 Max,但不確定如何使用。因此,我想獲取過去三周未登錄LoginDate的用戶的用戶日志串列:
var threeWeeksAgo = DateTime.Now.Date.AddDays(-21);
//userLogins is a table
var lastLogins = lowUsers.UserLogins
.Join(lowUsers.Clients, ul => ul.client, c => c.companyName, (ul, c) => new { ClientId = c.clientID, LoginDate = ul.dateTimeCreated, CompanyName = c.companyName })
.Where(a => a.LoginDate <= threeWeeksAgo);
如何使用過去三周未登錄的用戶串列檢查 LoginDate。
資料:
Id UserName LoginDate
1 User1 01/10/2021 13:24
2 User2 02/09/2021 13:24
3 User1 03/10/2021 13:24
4 User1 04/10/2021 13:24
5 User2 03/09/2021 13:24
uj5u.com熱心網友回復:
如果LoginDate是型別,DateTime您可以執行以下操作
var threeWeeksAgo = DateTime.Now.AddDays(-21);
//userLogins is a table
var notLoggedInUsers = userLogins.Where(a=>a.LoginDate < threeWeeksAgo).ToList();
uj5u.com熱心網友回復:
您首先需要按客戶分組,對該組的日期進行排序,然后將上次登錄日期與三周前進行比較。
var threeWeeksAgo = DateTime.Now.Date.AddDays(-21);
//userLogins is a table
var lastLogins = lowUsers.UserLogins
.Join(lowUsers.Clients, ul => ul.client, c => c.companyName, (ul, c) => new { ClientId = c.clientID, LoginDate = ul.dateTimeCreated, CompanyName = c.companyName })
.GroupBy(x => x.ClientId)
.Select(g => new { ClientId = g.Key, LastLoginDate = g.OrderByDescending(x => x.LoginDate).FirstOrDefault()?.LoginDate})
.Where(a => a.LastLoginDate <= threeWeeksAgo);
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/313666.html
下一篇:將時區日期列轉換為時間戳格式
