Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

sumar horas?

Estas en el tema de sumar horas? en el foro de SQL Server en Foros del Web. hola a todos, estoy trabajando en sql server 2008, mi pregunta es como hago para sumar dos datos de tipo time por ejemplo en mysql ...
  #1 (permalink)  
Antiguo 30/11/2009, 09:34
Avatar de gabrielflowers  
Fecha de Ingreso: julio-2007
Ubicación: Santa Cruz de la Sierra
Mensajes: 187
Antigüedad: 16 años, 9 meses
Puntos: 3
sumar horas?

hola a todos, estoy trabajando en sql server 2008, mi pregunta es como hago para sumar dos datos de tipo time

por ejemplo en mysql yo lo hacia asi:

Código:
SELECT ADDTIME('08:00','00:30')
--me devolvia 08:30, pasaba lo mismo si usabada campos en los parametros de addtime
alguien sabe como hago esto mismo en sqlserver????'
pasa q tengo campos del tipo time y quiero sumarlos

saludso, gracias espero sugerencias simples
__________________
"puedo detenerme, pero no retroceder, tengo que avanzar..."
  #2 (permalink)  
Antiguo 30/11/2009, 10:07
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: sumar horas?

Prueba con DateAdd
http://msdn.microsoft.com/en-us/library/ms186819.aspx
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 30/11/2009, 12:29
Avatar de gabrielflowers  
Fecha de Ingreso: julio-2007
Ubicación: Santa Cruz de la Sierra
Mensajes: 187
Antigüedad: 16 años, 9 meses
Puntos: 3
Respuesta: sumar horas?

Hola, despues de investigar un poco, me dedique mejor a hacerme mi funcion, q aca la expongo para utilidad de muchos

Código:
USE [mibasedatos]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [dbo].[ADDTIME](@hora1 as time,@hora2 as time)
RETURNS time
AS
BEGIN
	DECLARE @dtsuma AS datetime,
	@tsuma AS time,
	@horas AS numeric,
	@minutos AS numeric,
	@segundos AS numeric
	
	set @horas = DATEPART(hour,@hora2)
	set @minutos = DATEPART(minute,@hora2)
	set @segundos = DATEPART(second,@hora2)
	
	set @dtsuma = DATEADD(hour,@horas,@hora1)
	set @dtsuma = DATEADD(minute,@minutos,@dtsuma)
	set @dtsuma = DATEADD(second,@segundos,@dtsuma)	
	set @tsuma = CONVERT(time,@dtsuma)
	
	RETURN @tsuma  
END

--Y lo prueban de esta manera:

select [dbo].[ADDTIME]('08:00','00:30')  
--que devuelve como resultado:
08:30:00.0000000
como ven funciona, tanto para el formato hh:mm:ss como para hh:mm, gracias por leerme, saludos.




Agradecer no cuesta nada.
__________________
"puedo detenerme, pero no retroceder, tengo que avanzar..."
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:06.