effacer touts les enregistements si champ date et heure < moment

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : effacer touts les enregistements si champ date et heure < moment

par BeRoots » 05 nov. 2007, 16:56

c'est ce que je voulai essayer en effet :)
je vais donc faie ainsi ;)

encore merci à tous :D

par iclo » 05 nov. 2007, 16:44

Remplacer les champs de dates et de temps, par un champ unique datetime, qui contiendra les deux informations, et sera donc comparable par une seule clause dans le where.

Bien-sûr, si il est encore possible de modifier la base de donnée. ;)

par BeRoots » 05 nov. 2007, 16:19

merci pour vos reponse :)

voici mon schema de table:

Code : Tout sélectionner

CREATE TABLE temp_table_manif ( `id` int UNSIGNED AUTO_INCREMENT, `date` date NOT NULL, `time` time NOT NULL , `titre` VARCHAR(50) NOT NULL , `manif` text(65535) NOT NULL, PRIMARY KEY (id) ) TYPE = MYISAM CHARACTER SET latin1 COLLATE latin1_general_cs;
si quelqu'un à une idée :)

merci d'avance.

par Hubert Roksor » 05 nov. 2007, 12:53

Schéma de la table stp.

par Sékiltoyai » 05 nov. 2007, 02:24

Je viens de regarder la doc sur les dates : http://dev.mysql.com/doc/refman/5.0/fr/ ... tions.html
J'ai pas trouvé de truc vraiment intéressant, à part peut être STR_TO_DATE().

Mais avant de l'utiliser, peronnellement j'aurais testé tout simplement ceci :

Code : Tout sélectionner

CONCAT(date, ' ', time) < NOW()
En espérant que MySQL compare les chaines comme des dates…

Edit : En fait ya NOW() pour le datetime courant :D

par Sékiltoyai » 05 nov. 2007, 02:15

Ya une petite subtilité.
Quand tu fais "`date` < CURDATE() AND `time` < CURTIME()" , si tes enregistrements sont du 2 janvier 1876 mais à 23H56, ils ne seront pas effacés car il est 1H00 du mat… Je vais voir si je peux pas te trouver une fonction :)

effacer touts les enregistements si champ date et heure <

par BeRoots » 05 nov. 2007, 02:08

salut à tous :)

j'ai un petit soucis de requete sql qui me travail :-k
j'aimerai effacé touts les enregistrements dont les champs date et time (de type date et time respectif), sont strictement inferieur au moment d'execution de la requete...

je fait comme suis mais rien n'est effacer alors que j'ai bien des enregistrements qui sont "perimé":

Code : Tout sélectionner

DELETE FROM `public_table_manif` WHERE `date` < CURDATE() AND `time` < CURTIME();
si quelqu'un a une idée ;)
merci d'avance :)