2つのレコードをテーブルに挿入するストアドプロシージャがあります。レコード間の違いは、2番目のレコードの時間列が@MinToAdd
最初のレコードの後であることです。
CREATE PROCEDURE CreateEntry
/*Other columns*/
@StartTime time(2),
@EndTime time(2),
@MinutesToAdd smallint
AS
BEGIN
SET NOCOUNT ON;
SET @MinutesToAdd = @MinutesToAdd % 1440; --Prevent overflow if needed?
IF (@MinutesToAdd > 0)
BEGIN
INSERT INTO ClientNotification (/*Other columns*/ startTime, endTime)
OUTPUT inserted.id
VALUES
(/*Other columns*/ @StartTime, @EndTime),
(/*Other columns*/ @StartTime + @MinutesToAdd, @EndTime + @MinutesToAdd);
END
ELSE
BEGIN
/*Whatever ELSE does.*/
END
END
追加するための正しい方法は何である@MinutesToAdd
の分@StartTime
とは@EndTime
?データタイプ
を使用していることに注意してくださいtime
。
更新:
正解には次の情報が含まれている必要があります。
time
データ型に分を追加する方法。- 提案された解決策は精度の損失をもたらさないこと。
- 分が大きすぎて
time
変数に収まらない場合、または変数がロールtime
オーバーされるリスクがある場合に注意する必要がある問題または懸念。問題がない場合はその旨を明記してください。