J'ai une procédure stockée qui insère deux enregistrements dans une table, la différence entre les enregistrements est que la colonne de temps du deuxième enregistrement est @MinToAddaprès le premier:
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
Quelle est la bonne façon d'ajouter des @MinutesToAddminutes à @StartTimeet @EndTime?
Veuillez noter que j'utilise le timetype de données.
Mise à jour :
une réponse correcte doit contenir les informations suivantes:
- Comment ajouter des minutes à un
timetype de données. - Que la solution proposée n'entraîne pas une perte de précision.
- Problèmes ou préoccupations à prendre en compte dans le cas où les minutes seraient trop longues pour tenir dans une
timevariable, ou risque de reconduire latimevariable. S'il n'y a aucun problème, veuillez l'indiquer.