0

列のあるテーブルがあります:

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

ここで、値を分に変換する期間を選択するにはどうすればよいですか。すべてのレコードの期間の合計を分と秒で計算する

4

2 に答える 2

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)
});

ちなみに、期間なしで結果を取得し、結果を取得した後に計算することもできます(匿名を避けるため)

何かのようなもの :

var duration = (EndTime - StartTime).Minutes;
于 2012-08-29T08:51:26.837 に答える
1

次のコードに一致します。

var result = from Entityname in EntityListName
    where Entityname.StartTime >= 'value Input by user' etc ...
    orderby Entityname.StartTime descending 
    select Entityname;
于 2012-08-29T08:49:11.047 に答える