Ich habe eine gespeicherte Prozedur, die zwei Datensätze in eine Tabelle einfügt. Der Unterschied zwischen den Datensätzen besteht darin, dass die Zeitspalte des zweiten Datensatzes @MinToAdd
nach dem ersten steht:
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
Was ist der richtige Weg, um @MinutesToAdd
Minuten zu @StartTime
und hinzuzufügen @EndTime
?
Bitte beachten Sie, dass ich den time
Datentyp verwende.
Update :
Eine korrekte Antwort sollte folgende Informationen enthalten:
- So fügen Sie einem
time
Datentyp Minuten hinzu . - Dass die vorgeschlagene Lösung nicht zu einem Genauigkeitsverlust führt.
- Probleme oder Bedenken, die zu beachten sind, falls das Protokoll zu groß wäre, um in eine
time
Variable zu passen , oder das Risiko eines Rollover dertime
Variablen. Wenn es keine Probleme gibt, geben Sie dies bitte an.