0

私の SQL 2008 R2 には、次のテーブルがあります。

ここに画像の説明を入力

コンピューターの時間よりも長いすべての時間を選択する LINQ 構文を作成しました。

 public IList<LS_CLIENTHORRAIRE> Get_All_Obj(string CLIENT_ID)
        {
            try
            {
                IList<LS_CLIENTHORRAIRE> LesListe;
                using (Soft8Exp_ClientEntities oEntite_T = new Soft8Exp_ClientEntities())
                {
                    int The_Hour = DateTime.Now.Hour;
                    var query = from o in oEntite_T.LS_CLIENTHORRAIRE where o.CLIENT_ID == CLIENT_ID && o.HORRAIRE > new TimeSpan(The_Hour, 00/*minutes*/, 00/*seconds*/) select o;
                    LesListe = query.ToList();
                }
                return LesListe;
            }
            catch (Exception excThrown)
            {
                throw new Exception("Err_02", excThrown);
            }
        }

そしてそれはうまくいきます:

  • 時コンピュータが08:00それから戻ってくる12:0019:00
  • 時コンピュータである場合13:00、それは戻り19:00ます。

しかし今、私は日付も見るプログラムを変更したいと思います:

  • コンピューターの時刻になると、と08:00が返されます。12:0019:0005:00
  • 時コンピュータが13:00それから戻ってくる19:0005:00
  • 時コンピュータである場合20:00、それは戻り05:00ます。

何か案が ?

私はこのように試しました:

 DateTime The_Date = DateTime.Now.Date;
                    var query = from o in oEntite_T.LS_CLIENTHORRAIRE where o.CLIENT_ID == CLIENT_ID && The_Date.Add(o.HORRAIRE) > DateTime.Now select o;
                    LesListe = query.ToList(

);

しかし、残念ながらそれは機能しません

4

1 に答える 1

1
var query = oEntite_T.LS_CLIENTHORRAIRE
                .Where(o => o.CLIENT_ID == CLIENT_ID &&
                      (o.HORRAIRE > DateTime.Now.TimeOfDay || 
                       o.HORRAIRE.Hours == 5));

これにより、メソッドは希望どおりに動作します。わかりませんが、実際には よりも小さいのに、なぜ 5:00 を返したいのですかDateTime.Now = 13:00

あなたのテーブルには日付情報が欠けているため、ロジックが壊れていると思います。

于 2013-02-05T09:47:48.427 に答える