嗨,我在 asp.net core 2.1 中遇到了一个非常奇怪的问题我有一个查询选择特定日期的一些数据,例如
var balances = dbContext.Balances.Where(x => x.BalanceDate.Date == workDay.Date);
但是查询正在本地 ENV 上运行,即使我连接到远程 SQL 服务器也是如此。但在服务器端它不返回任何结果。
嗨,我在 asp.net core 2.1 中遇到了一个非常奇怪的问题我有一个查询选择特定日期的一些数据,例如
var balances = dbContext.Balances.Where(x => x.BalanceDate.Date == workDay.Date);
但是查询正在本地 ENV 上运行,即使我连接到远程 SQL 服务器也是如此。但在服务器端它不返回任何结果。
它可能与 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 始终是一个好习惯。