3

次の表があります。

                  SHIFT
 ----------------------------------------
| SHIFT_ID | SHIFT_TIME | SHIFT_DURATION |
| -------------------------------------- |
| 1        | 00:00:00   | 01:00:00       |
| 2        | 01:00:00   | 01:00:00       |
| 3        | 02:00:00   | 01:00:00       |
 ----------------------------------------

ここで、SHIFT_TIMESHIFT_DURATIONは typeTimeSpanです。

ここで、次のクエリを実行すると:

var query = from c in SHIFT
            where c.SHIFT_TIME + c.SHIFT_DURATION >=
            new TimeSpan(DateTime.Now.Hour,
                         DateTime.Now.Minute,
                         DateTime.Now.Second)
            select c;

次のエラーが表示されます。Operand data type time is invalid for add operator.

なぜそれをするのですか?このエラーを回避するにはどうすればよいですか?

編集:両方.Add()を使用してみ.CompareTo()ましたが、役に立ちませんでした。

4

2 に答える 2

1

2 つのタイムスパンを追加する方法がわかりません。このサイトから TimeSpan.Add() を使用します

次にTimeSpan.Compare()を使用します


やってますか

var query = from c in SHIFT
        where TimeSpan.Compare(c.SHIFT_TIME.Add(c.SHIFT_DURATION), 
                new TimeSpan(DateTime.Now.Hour,
                             DateTime.Now.Minute,
                             DateTime.Now.Second)).Equals(1)
        select c;

?

于 2013-07-10T19:05:28.983 に答える