Mam procedurę składowaną, która wstawia dwa rekordy do tabeli, różnica między nimi polega na tym, że kolumna czasowa drugiego rekordu znajduje się @MinToAddpo pierwszym:
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
Jaki jest prawidłowy sposób dodawania @MinutesToAddminut do @StartTimei @EndTime?
Uwaga: używam timetypu danych.
Aktualizacja :
Prawidłowa odpowiedź powinna zawierać następujące informacje:
- Jak dodać minuty do
timetypu danych. - Że proponowane rozwiązanie nie powoduje utraty precyzji.
- Problemy lub obawy, o których należy pamiętać w przypadku, gdy minuty byłyby zbyt duże, aby zmieściły się w
timezmiennej, lub ryzyko przewróceniatimezmiennej. Jeśli nie ma żadnych problemów, proszę to zaznaczyć.