日ごとにレポートを作成したいのですが、レポートを毎日生成することを選択します。時間間隔を 24:00:00.000 として指定すると、エラーが発生します。文字列で表される DateTime は、カレンダー System.Globalization.GregorianCalendar ではサポートされていません。
23:59:59 報告が遅れています。
日時形式での 1 日の長さは?
これがMSSQL Serverでの私の手順です
PROCEDURE [dbo].[Procedure1]
@Start datetime,
@Finish datetime,
@TimeRange time
AS
BEGIN
SET NOCOUNT ON;
declare @TimeRanges as TABLE (SessionStart datetime, SessionEnd datetime);
with TimeRanges as (
select @Start as StartTime, @Start + @TimeRange as EndTime
union all
select StartTime + @TimeRange, EndTime + @TimeRange
from TimeRanges
where EndTime < @Finish )
select StartTime, EndTime, Count( Test.ScenarioID ) as TotalPeaks
from TimeRanges as TR left outer join
dbo.Test as Test on TR.StartTime <= Test.SessionStartTime and Test.SessionCloseTime < TR.EndTime
group by TR.StartTime, TR.EndTime
END
このプロシージャをここに呼び出します
private DataSet GetStoredProcedure1(DateTime StartTime, DateTime FinishTime, DateTime TimeRange)
{
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand("Procedure1", connection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Start", SqlDbType.DateTime).Value = StartTime;
cmd.Parameters.AddWithValue("@Finish", SqlDbType.DateTime).Value = FinishTime;
cmd.Parameters.AddWithValue("@TimeRange", SqlDbType.DateTime).Value = TimeRange;
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
da.Fill(ds);
return ds;
}
時間範囲 00:05:00.00 を 5 分間 01:00:00.000 に 1 時間指定すると、コードに問題はありませんが、日次レポートが必要な場合は 24:00:00.00 が機能しません。どうすれば修正できますか?