我有一个将两条记录插入表中的存储过程,记录之间的区别在于第二条记录的时间列在@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
and的正确方法是什么@EndTime
?
请注意我使用的是time
数据类型。
更新:
正确答案应包含以下信息:
- 如何将分钟添加到
time
数据类型。 - 建议的解决方案不会导致精度损失。
- 如果分钟数太大而无法放入
time
变量中,或者有滚动time
变量的风险,需要注意的问题或顾虑。如果没有问题,请说明。