Estoy buscando una función que recibiría un tiempo y lo redondearía a la siguiente/anterior hora/media hora/trimestre/minuto.Cómo redondear un tiempo en T-SQL
17
A
Respuesta
28
Pruebe 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)
La primera parámetro es el momento de ser redondeada y la segunda será la base de su lista (0,5 de media hora, 1-una hora, ...)
5
Muy buenas gracias. Lo utilicé en línea para redondear a 15 minutos
convert(smalldatetime,ROUND(cast(TDatalog.Time as float) * (24/.25),0)/(24/.25)) AS RoundedTime
Cuestiones relacionadas
- 1. Cómo redondear un número
- 2. ¿Cómo puedo redondear un número en Javascript?
- 3. ¿Cómo redondear un número en Javascript?
- 4. Cómo redondear un valor en Twig
- 5. TSQL: Fecha ENTRE Consulta - Ignorando tiempo
- 6. Cómo redondear entero en java
- 7. ¿Cómo redondear un decimal hacia arriba?
- 8. Cómo redondear las esquinas de un botón
- 9. Redondear un número dividido en Bash
- 10. ¿Inconsistencia de TSQL Round()?
- 11. Redondear un doble a int
- 12. Cómo redondear/cementar/plantar un número bcmath en PHP?
- 13. Cómo redondear el minuto de un objeto datetime python
- 14. Cómo cortar decimal en Java SIN redondear?
- 15. ¿Cómo redondear solo esquinas en una UITableView?
- 16. cómo redondear números decimales en Android
- 17. cómo redondear hacia arriba en C#
- 18. Cómo redondear * abajo * enteros en Java?
- 19. ¿Cómo redondear un número dentro de un cierto rango?
- 20. Redondear valores decimales en C#
- 21. ¿Cómo redondear un decimal a la fracción más cercana?
- 22. Transacciones anidadas en TSQL
- 23. Sintaxis para redondear en VB.NET
- 24. Cómo actualizar un BLOB en SQL SERVER usando TSQL
- 25. Cómo implementar un bucle do-while en tsql
- 26. TSQL para combinar un campo de fecha y un campo de tiempo
- 27. ¿Simular enumeraciones en TSQL?
- 28. Cómo crear vistas actualizables en TSQL
- 29. ¿Cómo optimizar una consulta TSQL?
- 30. TSQL - Caso - ¿Valores en?
Si utiliza 121 en lugar de 113 que obtendrá el datepart correcta también – vzczc
Lo sentimos, 121 en lugar de 114 – vzczc
destacable que los incrementos deben especificarse como decimal notación de una fracción de hora. Entonces, si lo quiere redondeado a intervalos de 5 minutos, entonces eso es 1/12 de una hora, entonces @RoundTo sería .083. – eidylon