Consulta en codigo para Borrar datos anteriores a X dia en SQL y PHP

Discussion in 'Casos Resueltos Informáticos' started by Aguil@, Oct 28, 2011.

Thread Status:
Not open for further replies.
  1. Aguil@

    Aguil@ Usuario Habitual nvl.3 ★
    697/812

    Joined:
    Oct 10, 2007
    Messages:
    13,935
    Likes Received:
    38
    Hola
    tengo una consulta :
    tengo una base de dtaos llamada "webshop" y en ella varias tablas una se llama "ws_canasta"...en esta debo borrar todos los datos anteriores a 14 dias por ejemplo . La tabla le da una fecha timestamp a los articulos , encontre varias cosas ,pero esta me parece mas sencilla , pero no se si funciona con el timestamp de SQL

    Code:
    SELECT * FROM webshop WHERE wann < DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH)
    yo le cambie el select por delete

    Code:
    {
    $sql = "DELETE * FROM ws_canasta WHERE < DATE_SUB(CURRENT_DATE, INTERVAL 14 DAY)";
    }
    ¿hice lo correcto? porque ... no entendi bien ¿que hace date_sub? si era subtraer ¿es decir este comando borra los datos o no?
    otra opcion que vi ...

    Code:
    DELETE FROM ws_canasta
    WHERE w_timestamp < CURDATE() - INTERVAL 14 DAY
    otro (por si a alguien les sirve ;) )
    Code:
    DELETE FROM ws_canasta
    WHERE w_timestamp < NOW() - INTERVAL 14 DAY
    Repito me gustaria saber cuales funcionan con timestamp de SQL ,ya que por el momento no puedo probar nada ...y si alguien tiene una info mas "didactica" de lo que hace DATE_SUB.

    Saludos a todos y que esten bien
    aguil@
     
  2. cavoso

    cavoso Usuario Casual nvl. 2
    37/41

    Joined:
    May 31, 2008
    Messages:
    2,727
    Likes Received:
    13
    bueno creo que la cosa es asi DATE_SUB('fecha_actual', INTERVAL 7 DAY), con el date_sub puedes comparar si la fecha de la tabla a la que estas consultando entra en esa categoria y en base a eso modificas o eliminas segun el script que coloques, solo funciona si tienes un campo con la fecha y hora y donde dice fecha actual va la fecha actual el intevalo de los dias lo colocas tu en este caso es 7 y aqui un ejemplo de como lo puedes usar para eliminar.


    $sql = "DELETE * FROM ws_canasta WHERE `fecha_registro` < DATE_SUB(date("aa/mm/YY"), INTERVAL 14 DAY)";ahi tu sabes que funcion o de que forma colocas y muestras la fecha, pero creo que debe tener tambien la hora, eso espero que te ayude
     
  3. Aguil@

    Aguil@ Usuario Habitual nvl.3 ★
    197/244

    Joined:
    Oct 10, 2007
    Messages:
    13,935
    Likes Received:
    38
    ssiii ! ayuda bastante !
    mira con lo de la hora actual ...por eso tiene un CURRENT_DATE segun definicion
    y ahi tengo dudas ya que los articulos en la tabla tienen un "timestamp"...¿no seria mejor entonces asi? (la otra opcion!)

    Code:
    DELETE FROM ws_canasta WHERE w_timestamp < CURDATE() - INTERVAL 14 DAY
    :S ...igual gracias ! :)
     
  4. cavoso

    cavoso Usuario Casual nvl. 2
    37/41

    Joined:
    May 31, 2008
    Messages:
    2,727
    Likes Received:
    13
    creo que debe tener el DATE_SUB para que tome el tema del intervalo de tiempo, coloca
    Code:
    DELETE FROM ws_canasta WHERE w_timestamp < DATE_SUB(CURDATE(), INTERVAL 14 DAY);
    
    asi te deveria funcionar bien, ya que la funcion DATE_SUB hace que el sistema busque intevalos de tiempo, donde toma el tiempo registrado y compara con la fecha que tu le das y ahi le dices en que intervalo de tiempo tiene que funcionar, claro que esto se debe ejecutar manualmente a menos que agas un script que realice esta accion automaticamente todos los dias o sino vas a tener que ejecutar el script manualmente
     
  5. Aguil@

    Aguil@ Usuario Habitual nvl.3 ★
    197/244

    Joined:
    Oct 10, 2007
    Messages:
    13,935
    Likes Received:
    38
    la idea es manualmente ...asi que esta bien ...gracias
     
  6. cavoso

    cavoso Usuario Casual nvl. 2
    37/41

    Joined:
    May 31, 2008
    Messages:
    2,727
    Likes Received:
    13
    entonces todo listo que un mod cierre el tema xd
     
  7. Aguil@

    Aguil@ Usuario Habitual nvl.3 ★
    197/244

    Joined:
    Oct 10, 2007
    Messages:
    13,935
    Likes Received:
    38
    seeeeeeeeeeee! yo aviso !
     
  8. the kamikase

    the kamikase Usuario Maestro nvl. 6 ★ ★ ★ ★
    697/812

    Joined:
    Sep 19, 2008
    Messages:
    68,365
    Likes Received:
    42
Thread Status:
Not open for further replies.