Aller au contenu

MySql force une date


francoisch

Sujets conseillés

Bonjour

Avec la donnée dune colonne date (par ex. : 03/05/2008), je construis en Php la donnée $date1 dune colonne date1 (2008-05-03) ; jai 7000+ lignes comme ça.

Dans mon code Php, je mets des Print qui vérifient que les valeurs de ma donnée $date1 sont bien construites.

Mon ordre MySql :

$requete2 = "UPDATE compteur SET date1='$date1' ";

La colonne date1 est définie : varchar, 10, null=oui.

Résultat : chaque ligne de la colonne date1 = la date daujourdhui (2008-06-04), ce qui nest évidemment pas ce que jattend.

Jai essayé différentes variantes, sans succès.

Merci par avance de vos conseils.

Francois

Lien vers le commentaire
Partager sur d’autres sites

Mon ordre MySql :

$requete2 = "UPDATE compteur SET date1='$date1' ";

Si tu ne mets pas de clause pour restreindre cette opération ("where id=... " par exemple) tu mets à jour le champ date1 pour toutes les entées.

Lien vers le commentaire
Partager sur d’autres sites

bonjour

Chaque enregistrement a 4 champs, dont:

- date: , le 3e champ, avec une date de format mal foutu, pas toujours renseigné

- date1: le 4e champ, dans lequel je transforme en Php le contenu de date pour arriver à un format AAAA-MM-JJ, qui sera bon pour un tri plus tard

Après avoir lu la table, je fais ça avec:

while ($myrow = mysql_fetch_row($result)) 
{
if($myrow[2] > 0)
{
$date1 = substr($myrow[2],6,4)."-".substr($myrow[2],3,2)."-".substr($myrow[2],0,2);
$requete2 = "UPDATE compteur SET date1='$date1' ";
$result2 = mysql_query ($requete2, $connexion);
}
}

en vous épargnant les Print de vérification.

Voila donc quelques infos de plus; vous comprenez que cette date est variable suivant les enregistrements, la date à laquelle chacun a été créé.

Pour le format DATE, je ne suis pas sûr d'en avoir besoin.

A votre avis, que faire?

Francois

Lien vers le commentaire
Partager sur d’autres sites

Mais comme le dit Dan, si tu ne mets pas de clause "Where", la requête affectera tous les champs de ta table...

Et comme ton champ contient une date, elle est normal que le format soit de type.... date ^^

Sinon, j'ai pas compris le soucis...

Lien vers le commentaire
Partager sur d’autres sites

Posté (modifié)

bonjour et merci de ta réponse.

Je ne comprend pas tout:

- Oui, ma donnée est une date mais, tant que je ne le dis pas à MySql en précisant le format DATE, il n'y a que moi qui le sache donc il doit le traiter comme du Varchar classique

- sur chaque ligne, j'ai ces deux champs, date et date1, je prend le contenu de l'un, je le réarrange et je fais le SET pour mettre ce contenu dans l'autre champ

Question:

- que puis je mettre dans la clause Where? je ne vois pas puisque je veux bien mettre à jour chaque ligne, sauf si date y est vide.

Merci par avance de bien vouloir m'éclairer.

Francois

Modifié par francoisch
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...