【问题标题】:How to add hour from another column to date in Linq to SQL如何在 Linq to SQL 中将时间从另一列添加到日期
【发布时间】:2019-05-14 10:02:30
【问题描述】:

我编写了那个代码。我想使用 T-SQL DATEADD。

var result = dbContext.MyEntity
.Where(DbFunctions.AddHours(g.Date,g.Hour) >= minDate 
&& DbFunctions.AddHours(g.Date,g.Hour) <= maxDate).ToList();

当这到达 SQL 时,我得到了错误:

日期函数 dateadd 不支持 datepart 小时 输入日期

【问题讨论】:

  • 错误信息试图告诉你问题。您的数据类型为date 而不是datetime,并且您在该日期使用dateadd(hour)Related
  • 好的,我知道了。但是我不能在这里写新的 DateTime。我怎么能加入那个日期和时间,并查询他们。注意:我无法将 db 列从 Date 更改为 Datetime。
  • 尝试以下操作: var result = dbContext.MyEntity .Where(g => g.Date.AddHours(g.Hour) >= minDate && g.Date.AddHours(g.Hour)
  • @jdweng .AddHours 在查询数据库时不直接使用。
  • SQL 服务器为 AddHours 使用了三个参数,而您只有两个:docs.microsoft.com/en-us/sql/t-sql/functions/…

标签: c# entity-framework linq lambda entity-framework-6


【解决方案1】:

我找到了解决方案,可能对其他人有所帮助;

var result = dbContext.MyEntity
.Where(DbFunctions.CreateDateTime(g.Date.Year,g.Date.Month,g.Date.Day,g.Hour,0,0) >= minDate 
&& DbFunctions.CreateDateTime(g.Date.Year,g.Date.Month,g.Date.Day,g.Hour,0,0) <= maxDate).ToList();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-23
    • 2016-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多