【问题标题】:asp.net core 2.1 ef core 2.1 date compare not working on serverasp.net core 2.1 ef core 2.1 日期比较在服务器上不起作用
【发布时间】:2018-12-23 11:22:17
【问题描述】:

您好,我在 asp.net core 2.1 中遇到了一个非常奇怪的问题 我有一个查询选择特定日期的一些数据,例如

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

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

【问题讨论】:

  • 您的远程 SQL Server 是否设置为在不同的时间(即 UTC 时间)运行?
  • 连接字符串一样吗?您可能正在访问不包含相同数据的不同数据库。
  • @jdweng 只有1个数据库有数据:)
  • 你确定你没有超过 mdf 文件吗?
  • @jdweng 是的,100% 确定。

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


【解决方案1】:

它可能与 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 始终是一个好习惯。

【讨论】:

  • 我会试一试,但不知道为什么会发生
猜你喜欢
  • 2018-12-20
  • 1970-01-01
  • 2019-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多