我需要一个向上舍入到最接近的 x 分钟的函数。我在下面找到了一个,但它向上或向下舍入到最近的 x 分钟。基于另一个值,我要么需要将其向上舍入到最接近的半小时或小时。
CREATE FUNCTION [dbo].[RoundTime] (@Time DATETIME, @RoundToMin INT)
RETURNS DATETIME
AS
BEGIN
RETURN ROUND(CAST(CAST(CONVERT(VARCHAR,@Time,121) AS DATETIME) AS FLOAT) * (1440/@RoundToMin),0)/(1440/@RoundToMin)
END
GO