Ver Mensaje Individual
  #7 (permalink)  
Antiguo 05/04/2010, 15:01
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 3 meses
Puntos: 360
Respuesta: Duda con la funcion datediff

devilboy9999

datediff es una funció que retorna un valor entero que traduce el numero de dias que comprenden dos fechas. Si haces esto:
Código MySQL:
Ver original
  1. mysql> select datediff('2010-04-05','2010-04-03') as dif_dias;
  2. +----------+
  3. | dif_dias |
  4. +----------+
  5. |        2 |
  6. +----------+
  7. 1 row in set (0.09 sec)

ya que entre el 5 de abril del 2010 y el 3 de abril del 2010 hay solo dos dias.

Como tu campo es varchar, hay que castearlo a tipo date. Para eso hacemos uso de la función str_to_date. Para darle validez a tu formato sería hacer esto:

Código MySQL:
Ver original
  1. mysql> select str_to_date('05/04/2010','%d/%m/%Y') fecha_convertida;
  2. +------------------+
  3. | fecha_convertida |
  4. +------------------+
  5. | 2010-04-05       |
  6. +------------------+
  7. 1 row in set (0.00 sec)

Lo que hace es interpretar tu tipo de fecha en formato (dd/mm/yyyy) como una fecha valida para mysql.

ya con esto, nos apoyamos en la función curdate() que nos muestra la fecha actual del sistema.

Código MySQL:
Ver original
  1. mysql> select curdate();
  2. +------------+
  3. | curdate()  |
  4. +------------+
  5. | 2010-04-05 |
  6. +------------+
  7. 1 row in set (0.00 sec)
  8.  
  9. mysql>

Uniendo todas estas soluciones, puedes obtener el numero de dias que ha pasado entre la fecha actual y la fecha en que se registró el sistema.

Si por ejemplo el producto fue registrado el 01 de enero del 2009, esta consulta arrojaría el numero de dias trascurridos desde esa fecha hasta hoy.

Código MySQL:
Ver original
  1. mysql> select datediff(curdate(),str_to_date('01/01/2009','%d/%m/%Y')) dias_transcurridos
  2. +--------------------+
  3. | dias_transcurridos |
  4. +--------------------+
  5. |                459 |
  6. +--------------------+
  7. 1 row in set (0.00 sec)
  8.  
  9. mysql>

Ya con este numero, puedes validar con cuantos dias debe expirar el software y permitir listar el contenido de tu tabla.

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