У меня есть хранимая процедура, которая вставляет две записи в таблицу, разница между записями заключается в том, что столбец времени второй записи находится @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
переменной. Если проблем нет, укажите это.