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

Diferencia de minutos (sql)

Estas en el tema de Diferencia de minutos (sql) en el foro de Bases de Datos General en Foros del Web. Hola, estoy sacando una query que tiene 2 campos. from y to donde from es de tipo char(6) to es de tipo char(6) y guardo ...
  #1 (permalink)  
Antiguo 19/11/2003, 13:34
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 9 meses
Puntos: 50
Diferencia de minutos (sql)

Hola, estoy sacando una query que tiene 2 campos.

from y to

donde
from es de tipo char(6)
to es de tipo char(6)

y guardo la hora de los reportes y quedan algo como esto:
from = 10:30
to = 11:30

Ok.. hasta aqui todo bien... y si quiero obtener la diferencia de ellos utilizo la funcion datediff de SQL SERVER, y convierto el campo char a datetime para poder hacer la resta.. de tal manera que todsa mi consulta me queda así:

Cita:
select [from],[to],
datediff(n,convert(datetime,[from],109),convert(datetime,[to],109))
from reporter
Y me devuelve sin problemas, el resultado que espero pero la bronca es que cuando la hora es:
from = 23:40
to = 0:15

Es decir la hora 0 que corresponde a las 12:00 de la madrugada no me esta haciendo la resta y me arroja un valor de
-1450

Alguien sabe porque..??? o que tendría que hacer para que me devuelva 35

Gracias y espero sus comentarios
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #2 (permalink)  
Antiguo 19/11/2003, 14:26
Avatar de Jorge_Mota  
Fecha de Ingreso: diciembre-2002
Ubicación: Chapinlandia :-D
Mensajes: 725
Antigüedad: 21 años, 11 meses
Puntos: 11
esto es por que si tienes la hora

1:00 am
1:30 pm

al convertirlos a datetime
te queda algo asi como
01/01/2003 01:00:00
01/01/2003 13:30:00

asi que realmente las horas estan correspondiendo al mismo dia
tendrias que validar que si la hora 2 es mayor que la primera
le agregue un dia a la fecha
con dateadd --no se si existe en tu BD , no indicas que estas usando --

pero el problema esta en la fecha que le esta poniendo la del dia actual.

Saludos.
__________________
Jorge Mota
Blog
Gubiz estafa
  #3 (permalink)  
Antiguo 19/11/2003, 15:01
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 9 meses
Puntos: 50
Cita:
al convertirlos a datetime
te queda algo asi como
01/01/2003 01:00:00
01/01/2003 13:30:00
Así es... bueno.. de hecho al convertirlos me quedan
1900-01-01 23:40:00.000

ya que mis campos son de tipo char (y no puedo sumarle un día a la fecha ya necesito la hora de from y to reales) y para poder hacer la resta los convierto a datetime, pero no se porque con la hora 0 no me está haciendo bien la resta...

De todas formas gracias por tu sugerencia friend...

Alguna otra idea de que puedo hacer..??(o no se si desde sql server haya alguna funcion que me permita hacer eso)
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 14:31.