round redondear quitar hacia formato entero ejemplos decimales arriba abajo tsql rounding

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, ...)