IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Modifier le champ jour d'une date dans mysql


Sujet :

Requêtes MySQL

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 181
    Par défaut Modifier le champ jour d'une date dans mysql
    Bonjour,
    J'ai plusieurs dates dans une table du style "2008-07-02". J'aimerais mettre à tous les jours de ma date "00" à la place des jours déjà mis...
    ex : "2008-07-00"

    Comment faire svp ???

    UPDATE table SET date=...

    Merci d'avance

  2. #2
    Membre émérite Avatar de Mathusalem
    Profil pro
    IT moa
    Inscrit en
    Décembre 2003
    Messages
    1 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : IT moa

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 008
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cast(datepart(year,ladate) as varchar(4))+ '/' + cast( datepart(month,ladate) as varchar(2)) + '/00'
    ce n'est évidement plus une date, mais une chaîne de caractère, vu qu'il n'y a pas de jour 0

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 181
    Par défaut
    Oula merci mais ça ne marche pas...

    Je vous donne exactement le nom de ma table. Je l'ai appelé "date" et le champ à l'intérieur "datefr" ce qui doit faire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE date SET datefr=cast(datepart(year,ladate) AS varchar(4))+ '/' + cast( datepart(month,ladate) AS varchar(2)) + '/00'
    Que mettre à la place de datepart ? et à la place de ladate ?

    Je veux que ça reste une date malgré tout de la forme "année-mois-00".

    Merci d'avance.

  4. #4
    Membre émérite Avatar de Mathusalem
    Profil pro
    IT moa
    Inscrit en
    Décembre 2003
    Messages
    1 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : IT moa

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 008
    Par défaut
    tu ne peux pas mettre dans un champ de type datetime, quelque chose qui n'est pas une date : mets ça dans un varchar

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 181
    Par défaut
    Le type de ma date est "DATE" !

    Et en faisant la modification à la main sur une requête, ça fonctionne si on met des "00"...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE `date` SET `datefr` = '2008-03-00' WHERE `datefr` = '2008-03-11' LIMIT 1 ;
    Mon programme par la suite verra que la date du jour est 00 et j'ai une fonction qui ne prendra ainsi que le mois donc ça serait bien juste que je puisse modifier tous les jours de mes dates et mettre "00"...

    Rien n'est impossible en mysql je pense ??

  6. #6
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 286
    Par défaut
    En théorie, si on met un type DATE, c'est précisément pour interdire les dates invalides de ce genre. En pratique, MySQL admet d'avoir un jour 00 ou une combinaison 00-00 comme mois-jour.

  7. #7
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    En effet, une requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE `date` SET `datefr`=CONCAT(YEAR(`datefr`),'-',MONTH(`datefr`),'-00')
    donne bien le résultat attendu.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] modification et mise à jour d'une date dans un formulaire
    Par lemautchisig dans le forum IHM
    Réponses: 1
    Dernier message: 01/03/2011, 11h52
  2. Mise à jour d'une date dans un enregistrement
    Par Zoethibault dans le forum VBA Access
    Réponses: 1
    Dernier message: 23/12/2009, 14h03
  3. [AC-2003] Mise à jour d'une date dans une table en fonction d'un critère
    Par carlostropico dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 09/12/2009, 18h07
  4. Mise à jour d'une date dans MySQL
    Par champijulie dans le forum JDBC
    Réponses: 6
    Dernier message: 07/02/2007, 17h02
  5. [MySQL] mise à jour d'une date dans une table
    Par jophp dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/10/2006, 20h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo