tsql - redondear - round sql server ejemplos
Cómo redondear un tiempo en T-SQL (2)
Muy bien, gracias. Lo usé en línea para redondear a 15 minutos
convert(smalldatetime,ROUND(cast(TDatalog.Time as float) * (24/.25),0)/(24/.25)) AS RoundedTime
Estoy buscando una función que recibiría un tiempo y la redondearía a la siguiente / hora anterior / media hora / trimestre / minuto.
Prueba esta función
CREATE FUNCTION [dbo].[RoundTime] (@Time datetime, @RoundTo float)
RETURNS datetime
AS
BEGIN
DECLARE @RoundedTime smalldatetime
DECLARE @Multiplier float
SET @Multiplier= 24.0/@RoundTo
SET @RoundedTime= ROUND(CAST(CAST(CONVERT(varchar,@Time,121) AS datetime) AS float) * @Multiplier,0)/@Multiplier
RETURN @RoundedTime
END
select dbo.roundtime(''13:15'',0.5)
El 1er param es el tiempo para redondear y el 2do será la base en su lista (0.5-media hora, 1-una hora, ...)