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

Obtener la diferencia en horas de campos datetime

Estas en el tema de Obtener la diferencia en horas de campos datetime en el foro de SQL Server en Foros del Web. Solo a modo de ejemplo cree una tabla con dos campos (hora1,hora2) en los cuales inserte y modifique solo las horas update hora set hora1 ...
  #1 (permalink)  
Antiguo 21/02/2013, 10:17
 
Fecha de Ingreso: diciembre-2012
Mensajes: 83
Antigüedad: 11 años, 4 meses
Puntos: 4
Pregunta Obtener la diferencia en horas de campos datetime

Solo a modo de ejemplo cree una tabla con dos campos (hora1,hora2)
en los cuales inserte y modifique solo las horas

update hora set hora1 = '13:50'
update hora set hora2 = '14:45'

cuando les hago un select me muestra el campo asi '1900-01-01 13:50:00.000'

hasta alli todo va excelente, pero resulta que debo obtener la diferencia de las horas que hay entre el campo uno y dos,
con sus respectivos minutos tambien

he intentado con cosas asi:
select hora = datediff(hour, hora1, hora2), minuto = datediff(minute, hora1, hora2) - (datediff(hh, hora1, hora2) * 60) from hora

pero tengo problemas cuando los minutos de una hora son menores que otros porque me muestra valores negativos, mi idea es finalmente mostrar
para este ejemplo un resultado asi '0:55' ya que entre ambas horas solo hay 55 mins de diferencia, pero no logro encontrar una query
que me lo haga de manera eficiente para cualquier hora que tenga

Agradezco su ayuda, Saludos
  #2 (permalink)  
Antiguo 21/02/2013, 11:05
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Obtener la diferencia en horas de campos datetime

Código SQL:
Ver original
  1. DECLARE @DATE datetime
  2. SET @DATE=GETDATE()
  3. SET @DATE=dateadd(DD,1,getdate())
  4. SET @DATE=dateadd(mi,25,@DATE)
  5.  
  6.  
  7. SELECT CONVERT(VARCHAR(20),DATEDIFF(mi,getdate(),@DATE)/60) + ':' + CONVERT(VARCHAR(20),DATEDIFF(mi,getdate(),@DATE)%60)

diferencia en horas y minutos :)

P.D:favor de utilizar el buscador del foro ya ha habido varias preguntas relacionadas ya contestadas...

http://www.forosdelweb.com/f87/obten...horas-1030911/
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 21/02/2013, 11:37
 
Fecha de Ingreso: diciembre-2012
Mensajes: 83
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: Obtener la diferencia en horas de campos datetime

Funciona perfectamente, muchas gracias ;)

Etiquetas: campos, datetime, diferencia, horas, select, tabla
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 00:03.