-2

次のように、学生休暇の開始日と終了日を保存できるテーブルが 1 つあります。

StudentID   Age   startDate   EndDate

1           14    5/05/2013   7/05/2013   
4           17    4/04/2012   8/10/2012

新たに申請された休暇が、その学生にすでに設定されている休暇の範囲内にないかどうかを確認する必要があります。たとえば、ID = 1 の学生は、2013 年 6 月 5 日から始まる休暇を申請することはできません。

私は c# を使用しており、SQL または LINQ を使用するソリューションを探しています。

4

4 に答える 4

1
DateTime dtApplied;
var allDates = yourDt.Rows.Cast<DataRow>().Where(x => dtApplied >= x.Field<DateTime>("startDate") && dtApplied <= x.Field<DateTime>("endDate"));

BETWEENただし、私があなたの場合は使用を検討しSQLます。

于 2013-05-14T13:01:27.573 に答える
0

これを試すことができます:

  var result = dt.AsEnumerable().Where(r =>((int)r["StudentID"])==stdID &&
                                       (DateTime)r["startDate"]<=yourStartDate &&
                                       (DateTime)r["EndDate"]=YourEndDate))
                                       .FirstOrDefault();

または、これも実行できます。

string query="ID=1 AND startDate<=yourStratDate AND EndDate>=yourEndDate";
DataRow [] dr=dt.Select(strQuery);
于 2013-05-14T13:09:09.547 に答える
0
select student_id From TableName Where Student_id = 1 and @dateToCheck not( between startdate and enddate)
于 2013-05-14T13:10:24.593 に答える