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@
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
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 !
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