我有列表:
ID(int), Ano(varchar), Bno(varchar), StartTime(DateTime), EndTime(DateTime)
此SQL查询的等效LINQ语句是什么:
SELECT
StartTime, EndTime, Ano, Bno,
datediff(s, StartTime, EndTime) as duration
FROM
TABLENAME
where
StartTime >= 'value Input by user'
and StartTime <= 'value INPUT by user'
order by
StartTime desc
在这里,我如何选择持续时间转换为值到分钟。以分和秒计算所有记录的持续时间
答案 0 :(得分:2)
DateTime startTime = <Startime given by user>;
DateTime endTime = <Endtime given by user>;
var result =
yourSource
.Where (m => m.StartTime >= startTime && m.StartTime<= endTime)
.OrderByDescending(m => m.StartTime)
.Select(m => new {
startTime = m.StartTime,
endTime = m.EndTime,
ano = m.Ano,
bno = m.Bno,
duration = SqlFunctions.DateDiff("mi", m.StartTime, m.EndTime)
});
顺便说一下,你也可以在没有持续时间的情况下得到结果,并在检索结果后计算它(以避免使用anon)
类似的东西:
var duration = (EndTime - StartTime).Minutes;
答案 1 :(得分:1)
匹配以下代码:
var result = from Entityname in EntityListName
where Entityname.StartTime >= 'value Input by user' etc ...
orderby Entityname.StartTime descending
select Entityname;