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

fecha de caducidad SQL

Estas en el tema de fecha de caducidad SQL en el foro de SQL Server en Foros del Web. tengo un modulo donde los usuarios al tener una cierta cantidad de puntos pueden activar un panel premium, cuando se activa lo hace de esta ...
  #1 (permalink)  
Antiguo 04/08/2012, 16:28
 
Fecha de Ingreso: agosto-2012
Mensajes: 5
Antigüedad: 11 años, 8 meses
Puntos: 0
Mensaje fecha de caducidad SQL

tengo un modulo donde los usuarios al tener una cierta cantidad de puntos pueden activar un panel premium,

cuando se activa lo hace de esta forma:
Código PHP:
UPDATE dbo.memb_info SET premium '1'
WHERE memb___id '$usuario'
donde los valores son:
Cita:
user free: 0
user premium: 1
premium vencido: 2
a demas se agrega a la DB la fecha de vencimiento.
el problema es que cuando llega la fecha de vencimiento no cambia de valor en la base de datos y el user puede seguir usando los beneficios. entonces la pregunta es

¿como hacer para que cambie en la DB de el valor "1" a el valor "2" al llegar a la fecha de caducidad?
  #2 (permalink)  
Antiguo 05/08/2012, 03:53
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: fecha de caducidad SQL

Puedo pensar acerca de dos opciones, depende en la estructura del sistema:

1. Un Job que se ejecute cada dia y que actualize todas las filas que su fecha caducó.

2. Crear una vista (View) que muestre quien caducó y quien no segun la comparación entre su fecha de caducidad y la fecha en curso.
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #3 (permalink)  
Antiguo 05/08/2012, 16:53
 
Fecha de Ingreso: agosto-2012
Mensajes: 5
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: fecha de caducidad SQL

alguna idea de como programar el job?
PD: es un servidor dedicado con xampp

gracias por la respuesta
  #4 (permalink)  
Antiguo 07/08/2012, 17:04
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: fecha de caducidad SQL

Este tema se ha planteado varias veces, y la forma recomendada para resolverlo son las columnas calculadas, es decir, calcular el valor del campo premium en vez de almacenarlo en la base de datos, por ejemplo, suponiendo que los puntos necesarios sean 50 y que los días de caducidad son 30:

Código:
create table dbo.memb_info (mem_id varchar, puntos int, fecha_alta datetime)

select 
 mem_id,
 case
   when puntos < 50 then 0
   when puntos >=50 and fecha_alta < getdate()-30 then 1
   when puntos >=50 and fecha_alta >= getdate()-30 then 2
 end as premium
from dbo.memb_info
Saludos

Etiquetas: caducidad, fecha, sql, update
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 18:31.