1

私はWPFアプリを持っています。ここでは、フィールドの1つに、ActivityDurationと呼ばれる通話の長さの数値入力ボックスがあります。

以前は、これは分を表す整数値として保存されていました。ただし、クライアントは同じテーブルを使用して会議を記録することを望んでいますが、会議は4〜5時間続く可能性があるため、240分を入力するのはあまりユーザーフレンドリーではないようです。

現在、SQL 2008でActivityDurationを時間値に変更してタイムマスク入力ボックスを使用するか、整数のままにしてクライアントに2つの数値入力ボックス(1つは時間用、もう1つは1つ)を表示するかを検討しています。数分間計算してから、計算を実行してSQLServer2008に整数分として保存します。

コメントや提案を受け付けています。もう1つの考慮事項は、ActivityDurationに基づいて合計時間を計算できる必要があるため、フィールドDataTypeで簡単に合計できるようにする必要があるということです。

4

2 に答える 2

0

期間は2つの日付から計算されるだけなので、開始時刻と終了時刻を追跡します。日付をマスクする必要はありません。これを「セッション」で行うこともできます。これにより、1つの会議に複数のセッションを含めることができます(つまり、昼食にまたがる1つの会議で、期間にカウントされるべきではありません...)。

その場合、データ型はdatetimeまたはsmalldatetimeのいずれかになります。

次に、「合計期間」を取得するには、を使用したクエリです。

Select sum(datediff(mm, startdate, enddate)) from table where meetingID = 1
于 2010-01-30T16:57:29.687 に答える
0

新しいtimeデータ型は24時間しかサポートしないため、さらに必要な場合はdatetimeを使用する必要があります。したがって、7 x 4時間の会議を合計すると、「4時間」が返されます。

DBがデータを保存する方法も、データを表示およびキャプチャする方法とは異なります。

hh:nnタイプを表示してクライアントに変換し、日時として保存してみませんか?

于 2010-01-30T22:13:25.897 に答える