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