0

ユーザーからの入力を求めるプロジェクトがあります (@startdate および @enddate)

日付を選択したら、ボタンを押す必要があります。
ボタンを押すと、ストアド プロシージャが実行され、レポート ビューアーに結果が返されます。

問題は、同じ日を選択した場合です (たとえば、2012 年 5 月 14 日)。

(@startdate と @enddate は両方とも 5/14/12 です) 00:00:00 に設定されているため、情報は表示されません。

datetimepicker2 (@enddate) のタイムスタンプを 23:59:59 にしたいと考えています。

datetimepicker2.value の時刻として 23:59:59 を追加するにはどうすればよいですか?

4

3 に答える 3

1

C#でDateTime.AddDays(1).AddSeconds(-1)を使用できますが、これを行うことはお勧めしません-sprocを変更する必要があるようです

SQLプロシージャでBETWEENを実行していると思いますか?

普段使っています

YourDate >= @StartDate AND YourDate < DATEADD(d, 1, @EndDate)

これは、タイムスタンプを操作する場合、1日全体を選択する必要があるためです(例:2012年5月14日00:00:00から2012年5月14日23:59:59)。この構文を使用すると、すべてが含まれるため機能します。開始日の開始から終了日の終了までの時間

開始日とは異なる終了日を選択した場合、sprocは機能しますか?つまり、5/14/2012-> 5/15/2012を選択した場合、5/15/2012のデータが返されますか?

そうでない場合は、この問題が発生している可能性があります

于 2012-05-16T15:53:08.760 に答える
1

最小値_

「2011/08/21 00:00:00」

最大値_

「2011/08/21 23:59:59」

使用法:

   var firstDate = dtpFrom.Value.Date; //  0:00:00
   var secondDate =  dtpTo.Value.Date.AddSeconds(86400 - 1); //23:59:59 - 86400 is 24 hours
   var list = Services.GetListForFilter(firstDate, secondDate);
于 2014-11-25T13:39:34.250 に答える
1

最も簡単な方法は、datetimepicker2 値に時間を追加することです。

DateTime value = datetimepicker2.Value.AddSeconds(86399); //86400 is 24 hours
于 2012-05-16T15:50:42.347 に答える