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

Dato que disminuya cada día

Estas en el tema de Dato que disminuya cada día en el foro de Mysql en Foros del Web. Buenas amigos soy novato con las bases de datos, y necesito saber como programar un dato que vaya disminuyendo cada día por ejemplo si se ...
  #1 (permalink)  
Antiguo 05/12/2010, 20:25
 
Fecha de Ingreso: diciembre-2010
Mensajes: 4
Antigüedad: 11 años
Puntos: 0
Dato que disminuya cada día

Buenas amigos soy novato con las bases de datos, y necesito saber como programar un dato que vaya disminuyendo cada día por ejemplo si se le introduce un numero de 45 en 45 días quede en cero, es urgente.

disculpen si no utilizo el lenguaje adecuado y si no me se explicar por favor corrijan espero sus respuestas.

saludos
diego
  #2 (permalink)  
Antiguo 06/12/2010, 09:11
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 15 años, 9 meses
Puntos: 96
Respuesta: Dato que disminuya cada día

Saludos

Podrías hacer una tarea programada en windows o un cronjob en linux que ejecute un programa en php u otro lenguaje, todas las madrugadas y realice el decremento que necesitas!
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 06/12/2010, 12:11
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 12 años, 9 meses
Puntos: 360
Respuesta: Dato que disminuya cada día

Lo que dice nano es muy cierto. Pero para que contexto lo requieres?
Es posible que solo te toque validar 45 dias contra un campo sin necesidad de cambiarlo.

explicanos un poco el problema.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 07/12/2010, 07:27
 
Fecha de Ingreso: diciembre-2010
Mensajes: 4
Antigüedad: 11 años
Puntos: 0
Respuesta: Dato que disminuya cada día

Por ejemplo.

Quiero una pagina web que cuando el usuario se registre y habilite su cuenta pueda disfrutar de algunos beneficios pero que a los 30 días se bloquee su cuenta y tenga que volver a registrarse.

lo estoy intentando con un TIMESTAMP con una consulta como esta:

SELECT
id, name, date,
floor(((date + (86400 * 30)) - unix_timestamp()) / 86400) AS expire_days
FROM user
WHERE id = 3

así comparo el tiempo desde que se registro con el tiempo actual y si es igual a cero si bloquea la cuenta pero aun no logro que me funcione bien.

lo que necesito es una columna que cada di que pase se disminuya y así cuando llegue a cero la cuenta se bloquee.

gracias de antemano
  #5 (permalink)  
Antiguo 07/12/2010, 07:41
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 12 años, 9 meses
Puntos: 360
Respuesta: Dato que disminuya cada día

mira este ejemplo

Código MySQL:
Ver original
  1. mysql> SELECT *FROM usuarios1;
  2. +------+---------+------------+
  3. | id   | nombre  | fecha_exp  |
  4. +------+---------+------------+
  5. |    1 | daniel  | 2010-11-25 |
  6. |    2 | daniela | 2010-11-15 |
  7. |    2 | daniela | 2010-10-02 |
  8. +------+---------+------------+
  9. 3 rows in set (0.00 sec)
  10.  
  11. mysql> select id,nombre,if((45 - datediff(now(),fecha_exp))<=0,0,datediff(now(),fecha_exp)) expire_days from usuarios1;
  12. +------+---------+-------------+
  13. | id   | nombre  | expire_days |
  14. +------+---------+-------------+
  15. |    1 | daniel  |          12 |
  16. |    2 | daniela |          22 |
  17. |    2 | daniela |           0 |
  18. +------+---------+-------------+
  19. 3 rows in set (0.00 sec)

cambia now por cualquier fecha para que veas que la resta la hace bien.


El if es para evitar mostrar numeros negativos.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: dato
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:54.