Tôi có một thủ tục được lưu trữ để chèn hai bản ghi vào một bảng, sự khác biệt giữa các bản ghi là cột thời gian của bản ghi thứ hai là @MinToAddsau bản đầu tiên:
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
Cách chính xác để thêm @MinutesToAddphút @StartTimevà là @EndTimegì?
Xin lưu ý tôi đang sử dụng timekiểu dữ liệu.
Cập nhật :
Một câu trả lời đúng phải chứa thông tin sau:
- Làm thế nào để thêm phút vào một
timekiểu dữ liệu. - Rằng giải pháp đề xuất không dẫn đến mất độ chính xác.
- Các vấn đề hoặc mối quan tâm cần lưu ý trong trường hợp số phút sẽ quá lớn để phù hợp với một
timebiến hoặc có nguy cơ làmtimethay đổi biến. Nếu không có vấn đề thì xin vui lòng nêu rõ như vậy.