Suppression des lignes de la table MySQL où l'horodatage a plus d'un jour?
J'ai trouvé exactement la même question ici.
Mais il ne fonctionne pas pour moi. J'ai modifié un peu, manipulé, et je ne peux pas la comprendre. Je suis en train de supprimer les lignes qui sont plus d'un jour. Voici mon code:
if (isset($_POST['prune'])) {
$sql = "DELETE FROM logs WHERE time < date('now', '-1 days')";
mysql_query($sql);
echo 'Logs older than one day removed.';
}
Assez simple question, je suppose, mais son écoute à l'enfer hors de moi. Je vous serais reconnaissant de toute aide.
Dans le cas où il fait une différence, la colonne est une TIMESTAMP
type.
EDIT: Apparemment, je suis un idiot. La question que je vous concerne SQLite3. Alors maintenant ma question est, comment puis-je faire dans MySQL?
source d'informationauteur Rob
Vous devez vous connecter pour publier un commentaire.
Vous pouvez soustraire un intervalle:
La réponse était IIRC pour SQLite3. Vous utilisez MySQL qui ne supporte pas cette syntaxe.
Vous souhaitez utiliser DATE_ADD() fonction (exemple ci-dessous, pas encore testé mais devrait fonctionner):
Dans mon cas, seule la
timestampadd
dans la direction positive de travaux lors de l'exécution par le biais d'un asc a date calendrier:
En direction négative (
-1)
l'horodatage remonte à la première entrée. J'ai aussi essayé de ne pas utiliser CodeIgniter, mais la même conséquence.En résumé,
+1
en tant que paramètre pour timestampadd œuvres,-1
travaille pour le deuxième taux le plus faible d'entrée (puis de revenir à la première. Mais il ne parvient pas quand je suis loin de la première date.