ฉันมีขั้นตอนการจัดเก็บที่แทรกสองระเบียนลงในตารางความแตกต่างระหว่างบันทึกคือคอลัมน์เวลาของระเบียนที่สองอยู่@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ตัวแปร หากไม่มีปัญหากรุณาระบุให้