我有一个存储过程,该过程将两个记录插入到一个表中,记录之间的区别是第二个记录的时间列在第一个记录@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
变量翻转的风险。如果没有问题,请声明。
5
我看不到您对问题的编辑如何进一步澄清当前的问题。
—
swasheck 2013年
@swasheck我明确声明了我要寻找的三件事。我也对我不想要的东西设置了界限。
—
20:42修改