Eu tenho um procedimento armazenado que insere dois registros em uma tabela, a diferença entre os registros é que a coluna de tempo do segundo registro é @MinToAddposterior ao primeiro:
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
O que é a maneira correta de adicionar @MinutesToAddminutos para @StartTimee @EndTime?
Observe que estou usando o timetipo de dados.
Atualização :
uma resposta correta deve conter as seguintes informações:
- Como adicionar minutos a um
timetipo de dados. - Que a solução proposta não resulta em perda de precisão.
- Questões ou preocupações a serem observadas no caso de os minutos serem muito grandes para caberem em uma
timevariável ou o risco de rolar atimevariável. Se não houver problemas, informe-o.