UDF to round minutes to quarter hour

>>Script Language and Platform: SQL Server 2000 User-Defined Functions
At our consulting firm, we record time in minutes, and we round those minutes up to the next quarter hour; for reporting purposes, we bill according to hours used. This function requires an input of minutes used, and will return the results rounded to the next quarter hour (e.g.):


SELECT dbo.udfRoundQtRHr(61) returns 1.25
SELECT dbo.udfRoundQtRHr(59) returns 1.00

Author: Stuart R Ainsworth

Script:


CREATE FUNCTION udfRoundQtrHr (@Minutes as numeric(10,6))
RETURNS numeric(6,2) AS

BEGIN
DECLARE @Output int
DECLARE @ModOutput numeric(10,6)

SET @Output = CEILING(@Minutes) — raises the value of the minutes
to the next whole minute

SET @ModOutput = @Output % 60
SET @ModOutput = CASE WHEN @ModOutput BETWEEN 1 AND 15 THEN 0.25
WHEN @ModOutput BETWEEN 16 AND 30 THEN 0.50
WHEN @ModOutput BETWEEN 31 AND 45 THEN 0.75
WHEN @ModOutput BETWEEN 46 AND 59 THEN 1.00
ELSE 0
END

RETURN(@Output/60 + @ModOutput)

END



Disclaimer:
We hope that the information on these script pages is
valuable to you. Your use of the information contained in these pages,
however, is at your sole risk. All information on these pages is provided
“as -is”, without any warranty, whether express or implied, of its accuracy,
completeness, or fitness for a particular purpose…

Disclaimer Continued

Back to Database Journal Home

Latest Articles