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à @MinToAdd
sau 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 @MinutesToAdd
phút @StartTime
và là @EndTime
gì?
Xin lưu ý tôi đang sử dụng time
kiể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
time
kiể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
time
biến hoặc có nguy cơ làmtime
thay đổi biến. Nếu không có vấn đề thì xin vui lòng nêu rõ như vậy.