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

Interval de 30 segundos

Estas en el tema de Interval de 30 segundos en el foro de Mysql en Foros del Web. Buenas, seguimos con las dudas a nivel newbie. He heredado ún codigo que realiza una serie de funcions sobre las transacciones del cliente en intervalos ...
  #1 (permalink)  
Antiguo 19/03/2013, 03:41
 
Fecha de Ingreso: octubre-2012
Mensajes: 38
Antigüedad: 11 años, 6 meses
Puntos: 0
Interval de 30 segundos

Buenas, seguimos con las dudas a nivel newbie.

He heredado ún codigo que realiza una serie de funcions sobre las transacciones del cliente en intervalos de 1 minuto, vigilando en las sentencias SQL que la transaccion sea "> DATE_SUB(now(), INTERVAL 12000 MINUTE"

¿por que quitar 12000 al minuto? ¿que unidad son los 12000? No veo como ajustarlo a medio minuto, no es 60000 ni 24000, mi no entender :( Ahora necesito cambiarlo de 60 segs a 30, y no consigo ni encuentro documentacion que aclare exactamente por que estos 12000, lo mejor que he encontrado es http://conclase.net/mysql/curso/?sqlfun=DATE_ADD pero según esta web lo que mi sentencia haría es restarle 12000 al momento actual, y no entiendo esa cantidad entonces de donde sale.
  #2 (permalink)  
Antiguo 19/03/2013, 03:49
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Interval de 30 segundos

12.000 son alrededor de 8 días y 8 horas. Eso por lo pronto. Para qué alguien quiere calcular eso, es para mí un misterio, sin mirar todo el sistema.
En cuanto a una función que te devuelva una diferencia de 30 segundos, es de lo más simple, cuando lees con cuidado y atención el manual de referencia: Usa TIMESTAMPDIFF().
DATE_ADD, por más que tolere usar DATETIMEs, es una función que apunta a fechas, no fechas y horas. Al operar con fracciones de dias genera conversiones implícitas de fecha a fecha y hora, pero eso puede tener resultados inesperados cuando no se tiene cuidado respecto a los parámetros usados.

La idea es, usando lo que dices:
Código MySQL:
Ver original
  1. SELECT a, b, c, ...
  2. FROM tabla
  3. fecha > DATE_SUB(NOW(), INTERVAL 30 SECOND);
O bien:
Código MySQL:
Ver original
  1. SELECT a, b, c, ...
  2. FROM tabla
  3. TIMESTAMPDIFF(SECOND, NOW(), fecha) > 30;


En todo caso, sería mejor que postearas el código de la función que te causa problemas. Es más sencillo darte consejos con cosas reales.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 19/03/2013 a las 04:26

Etiquetas: segundos, sql
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 05:27.