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

restar valores de hrs

Estas en el tema de restar valores de hrs en el foro de Mysql en Foros del Web. hola como puedo restar la informacion o los datos de la hora anterior ala que sigue..por ejemplo hra valor 15:00 6 16:00 15 restar lo ...
  #1 (permalink)  
Antiguo 05/01/2009, 09:20
Avatar de Zeptimo  
Fecha de Ingreso: enero-2008
Mensajes: 269
Antigüedad: 16 años, 3 meses
Puntos: 1
De acuerdo restar valores de hrs

hola

como puedo restar la informacion o los datos de la hora anterior ala que sigue..por ejemplo

hra valor
15:00 6
16:00 15


restar lo de la hora 15 a la 16


resultado

16:00 = 9

saludos..................

ojala me puedan ayudar.................
  #2 (permalink)  
Antiguo 05/01/2009, 09:52
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: restar valores de hrs

Usa la función TIMEDIFF

Cita:
mysql> SELECT TIMEDIFF('2000:01:01 00:00:00',
-> '2000:01:01 00:00:00.000001');
-> '-00:00:00.000001'
mas info http://dev.mysql.com/doc/refman/5.0/...functions.html

saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #3 (permalink)  
Antiguo 05/01/2009, 10:21
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: restar valores de hrs

Como te sugiere Genetix, usando TIMEDIFF y haciendo volver sobre la tabla. Yo estas cosas suelo hacerlas con programación, pero en este foro de bases de datos la propuesta que te hago es esta:

Código sql:
Ver original
  1. SELECT b.hra AS horab, (b.valor-a.valor) diferencia FROM `nombretabla` a, nombretabla b
  2. WHERE a.hra = TIMEDIFF(b.hra, '01:00:00') ORDER BY a.hra

La condición es que hra es un campo de tipo TIME y valor un campo de tipo numérico. Todas las horas deben estar, pues un salto de más de una hora daría problema...

Pruébalo
  #4 (permalink)  
Antiguo 05/01/2009, 10:31
Avatar de Zeptimo  
Fecha de Ingreso: enero-2008
Mensajes: 269
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: restar valores de hrs

solo que el valor esta en la misma tabla y lo que estas poniendo es

(b.valor - a.valor) ahi es donde no entiendo. la idea es restar el valor de la hora anterior con la siguiente

ajala me ayuden

saludos.................
  #5 (permalink)  
Antiguo 05/01/2009, 13:55
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: restar valores de hrs

Zeptimo, se trata de la misma tabla, lo que sucede es que la estoy usando en dos ocasiones y para eso empleo alias a y b.
Observa que lo que hago es cruzar los datos de la tabla mediante un autojoin consigo misma pero la equivalencia será entre campos que se diferencien una hora; luego resto los campos valor de una y otra tabla en el cruce y me ofrece la diferencia.
Pruébalo
  #6 (permalink)  
Antiguo 05/01/2009, 14:54
Avatar de Zeptimo  
Fecha de Ingreso: enero-2008
Mensajes: 269
Antigüedad: 16 años, 3 meses
Puntos: 1
De acuerdo Respuesta: restar valores de hrs

OIE EN

tiemdiff(b.hora, '01:00:00')
EL TIMEDIFF LE ESTAS INDICANDO QUE TE RESTE EL VALOR DE LA HORA anterior???
  #7 (permalink)  
Antiguo 05/01/2009, 16:32
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: restar valores de hrs

Sí, para establecer el cruce entre un registro con una hora y el registro de la hora siguiente.
  #8 (permalink)  
Antiguo 05/01/2009, 17:06
Avatar de Zeptimo  
Fecha de Ingreso: enero-2008
Mensajes: 269
Antigüedad: 16 años, 3 meses
Puntos: 1
De acuerdo Respuesta: restar valores de hrs

Oie jurena haz utilizado el hour???


Lo estoy utilizando pero el problema es que nada mas me trae la hora 6 ,pero cuando le pido que me traiga de 0 a 23 como que no me lo acepta..

Sabes algo de esta funcion???

Saludos..................
  #9 (permalink)  
Antiguo 05/01/2009, 17:34
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: restar valores de hrs

muestra el sql que utilizas. Debería ser algo así
SELECT campo1, campo2 FROM tutabla WHERE HOUR(campotime) BETWEEN 0 AND 23

No he probado nada
  #10 (permalink)  
Antiguo 05/01/2009, 17:39
Avatar de Zeptimo  
Fecha de Ingreso: enero-2008
Mensajes: 269
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: restar valores de hrs

select A.MAVHORAR,MAX(A.MAVCSUB),B.OSTRUTA,B.OSTNUM

FROM MMAV A,MOST B
WHERE A.MAVFECHAR = B.OSTFEC AND
A.MAVNECO = B.OSTNEC AND

A.MAVHORAR > OSTHRRLIN AND A.MAVHORAR < OSTHRRLTR AND
HOUR(A.MAVHORAR) <= 23 AND
A.MAVFECHAR = '2008/12/26' AND
B.OSTRUTA = 23 AND
A.MAVNECO = 1997
GROUP BY A.MAVCSUB
ORDER BY A.MAVCSUB

EL PROBLEMA DE ESTO ES QUE ME TRAE TODO LAS SUBIDAS Y YO SOLO QUIERO LA SUBIDA MAXIMA DE CADA HORA..

SALUDOS..
  #11 (permalink)  
Antiguo 06/01/2009, 06:09
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: restar valores de hrs

Zeptimo,
necesito saber las tablas, sus relaciones, los campos y tipos, algunos datos de ejemplo, y qué es lo que buscas para poder ayudarte en tu consulta.
  #12 (permalink)  
Antiguo 06/01/2009, 07:31
Avatar de monjeruiz  
Fecha de Ingreso: junio-2007
Ubicación: Santiago, Chile
Mensajes: 113
Antigüedad: 16 años, 10 meses
Puntos: 3
Respuesta: restar valores de hrs

date(campo_fecha) = date(DATE_ADD(CURDATE(), INTERVAL -1 DAY))
DATE_ADD('1998-01-01 00:00:00', INTERVAL '-1 10' DAY_HOUR)
DATE_SUB('1998-01-01 00:00:00', INTERVAL '1 1:1:1' DAY_SECOND)
DATE_ADD('1997-12-31 23:59:59', INTERVAL '1:1' MINUTE_SECOND)

Si no te queda claro consulta esta URL
http://mysql.conclase.net/curso/index.php?fun=DATE_ADD
__________________
[B]Ingeniero en Informatica
Jose Monje Ruiz [/b]
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:25.