【问题标题】:DateDiff equivalent in Linq MVCLinq MVC 中的 DateDiff 等效项
【发布时间】:2019-03-06 02:30:22
【问题描述】:

我目前正在处理日期比较页面,我的一位同事提供了一个我需要在 Linq 上转换的 SQL 查询。但我对 SQL 中的DATEDIFF 不太熟悉

所以这里是 SQL 查询

,case when  DATEDIFF(day, isnull(a.NewWorkerDate,a.Workerdate), a.Workerdate)=0 then 'NEWWORKER' ELSE 'OLDWORKER' End as WorkerType

我尝试了类似的方法,但得到不同的输出

var WorkerType = (from a in db.Workers
                  where a.IsDeleted = false
                   && a.ID == workerId
                  select new WorkerModel{
                       WorkerType = EntityFunctions.DiffDays(a.NewWorkerDate, a.Workerdate) = 0 ? "NEWWORKER" : "OLDWORKER" 
}).FirstOrDefault;

isnull 将如何发生以及在哪里发生?提前致谢

【问题讨论】:

    标签: jquery sql linq asp.net-mvc-3 razor


    【解决方案1】:

    首先,EntityFunctions 已过时,建议改用System.Data.Entity.DbFunctions.DiffDays。您也可以使用?? 处理null 值:

    var WorkerType = (from a in db.Workers
                      where a.IsDeleted == false
                       && a.ID == workerId
                      select new {
                           WorkerType = DbFunctions.DiffDays
                                          (a.NewWorkerDate ?? a.Workerdate, a.Workerdate)  == 0 ? 
                                          "NEWWORKER" : "OLDWORKER" 
          }).FirstOrDefault();
    

    【讨论】:

      猜你喜欢
      • 2011-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多