ASP.NET Core 2.1和EF Core 2.1日期比较在服务器上不起作用

时间:2018-07-15 23:13:18

标签: c# linq asp.net-core-2.1 ef-core-2.1

嗨,我在asp.net core 2.1中面临一个非常奇怪的问题 我有一个查询,选择一个特定日期的数据,例如

var balances = dbContext.Balances.Where(x => x.BalanceDate.Date == workDay.Date); 

但是该查询正在本地ENV上运行,甚至当我连接到远程SQL Server时也是如此。但在服务器端,它不会返回任何结果。

1 个答案:

答案 0 :(得分:0)

它可能与SQL Server的DateTime类型中包含的时区或毫秒有关。这可能是上述原因之一,您可以执行此操作(仅进行==比较)

 var balances = dbContext.Balances.Where(x => 
     x.BalanceDate./*Date.*/Year == workDay/*.Date*/.Year &&
     x.BalanceDate./*Date.*/Month == workDay/*.Date*/.Month &&
     x.BalanceDate./*Date.*/Day == workDay/*.Date*/.Day); 

PS:管理/统一时区偏移量或在处理日期类型时使用UTC始终是一个好习惯。