如何使用LINQ查询添加小时数?

时间:2015-07-16 07:50:08

标签: sql asp.net-mvc linq date linq-to-sql

我需要获取最后七个日期,并从我的数据库中为每个日期添加-4小时

我的SQL查询将是:

select DATEADD(hh, -4, [DateColumn]) 
from mydatabse.dbo.mytable
where DATEDIFF(dd, DATEADD(hh, -4, [DateColumn]), getdate()) between 1 and 7
group by DATEADD(hh, -4, [DateColumn]) 

有人可以帮我将这个SQL查询转换为LINQ吗?

3 个答案:

答案 0 :(得分:3)

我想你在使用C#?请查看以下内容是否符合您的需求:

using System.Data.Entity.SqlServer;

from a in mydatabase.mytable
let d = SqlFunctions.DateAdd("hh", -4, a.DateColumn)
let e = SqlFunctions.DateDiff("dd", d, SqlFunctions.GetDate())
where e >= 1 && e <= 7
group a by d into g
select g.Key;

答案 1 :(得分:0)

什么似乎是问题? DateTime类型有AddHours()方法,因此您可以使用它。

如果你想更改表格中的属性,它将是这样的:

var entity = context.Table.FirstOrDefault(); // get your entity
entity.YourDate = entity.YourDate.AddHours(4); //add 4 hours
context.SubmitChanges(); //Save it to you storage

答案 2 :(得分:0)

Haven编译它只是试试这个

 var yourRecord =  DBContext.Table.Where(x => DbFunctions.AddDays(DateTime.Now, -7) <= x.YourDate && x.YourDate <= DateTime.Now).FirstOrDefault();
       yourRecord.YourDate = DateTime.Now.AddHours(4);