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

PostgreSQL Discussion :

Formattage de date


Sujet :

PostgreSQL

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut Formattage de date
    Bonjour,

    Pour une utilisation de la fonction age() j'ai besoin de mettre ma date au format américain yyyy/mm/dd. Or mes dates sont au format français et je ne trouve pas de fonction pour faire la conversion.

    Merci à tous

  2. #2
    Membre émérite Avatar de Spoutnik
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 672
    Par défaut
    hello!

    je ne sais pas s'il y a une autre solution, mais essaye ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    to_timestamp(ta date, 'DD/MM/YYYY')
    Voire ceci si tu veux garder l'heure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    to_timestamp(ta date, 'DD/MM/YYYY HH24:MI:SS')
    ++

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    Non ça ne marche pas...ça me donne 0009-12-01 00:00:00+00

  4. #4
    Membre émérite Avatar de Spoutnik
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 672
    Par défaut
    Quelle est ta chaine d'entrée? (date qui doit être une chaine de caractère => cast si necessaire).
    Le format n'est pas bon à priori.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    ma date est au format date

  6. #6
    Membre émérite Avatar de Spoutnik
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 672
    Par défaut
    le format, pas le type
    est ce que ta date est de la forme '2006/01/15', '15/01/2006' ou '01/15/2006' voir '2006-01-15', etc ... ?

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    Oups elle est au format 03/11/2006 soit dd/mm/yyyy

  8. #8
    Membre émérite Avatar de Spoutnik
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 672
    Par défaut
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    to_timestamp(ta date::text, 'DD/MM/YYYY')
    ?
    avec le cast ?
    et sinon que donne
    ?

    déso, ce sera tout pour today bonne soirée

    ++

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select to_timestamp(inscrit_date_naissance:: varchar, 'YYYY/MM/DD')
    La date est au format "2006-07-04 00:00:00" c'est l'ordre que je veux mais pas le format. Je veux obtenir "2006/07/04" uniquement

    merci

  10. #10
    Membre émérite Avatar de Spoutnik
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 672
    Par défaut
    hello,

    Je ne comprend plus rien ...

    Tu veux utiliser la fonction 'age'? 'age' prend un ou deux timestamp en paramètres. Pourquoi tu veux utiliser des types 'DATE' ?

    Ensuite, un timestamp est un timestamp, '2006-07-04 00:00:00' n'est qu'une représentation (un timestamp est le nombre de sec depuis le 01/01/1970), l'ordre jj/mm/aaaa n'est qu'un choix d'affichage paramétrable sans rapport avec la valeur réellement stockée (enfin, si un peu quand même hein!! ).

    Ta date vient d'ou? de la base? d'un fichier texte? si ca vient de la base, sous quel type est elle enregistrée ? DATE ? TIMESTAMP ?

    Peux tu mettre un exemple, avec les types de données utilisés, de ta commande 'age' stp ?

    ++

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    Ma date vient de la base et est de type date

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    Je me suis aperçu que la fonction age fonctionne avec un fomat américain pas un format français. L'age renvoyé n'est pas cohérent

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    J'ai une fonction qui doit mettre à jour automatiquement la nuit l'age de mes membres. Cette fonction est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE inscrit
    SET inscrit_age = inscrit_age + 1
    WHERE age(inscrit_date_naissance::timestamp) = date_trunc('year' , age(inscrit_date_naissance::timestamp))
    Mais je me suis aperçu que l'age renvoyé n'est pas correct parce que le format de la date est français.

    Voilà voilà où est le problème....

    Quand je fais cette requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT age(inscrit_date_naissance) FROM inscrit
    Ca me renvoit des ages incorrects.

  14. #14
    Membre émérite Avatar de Spoutnik
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 672
    Par défaut
    ok, alors, encore une petite question :

    quel est le type de données de 'inscrit_date_naissance' , DATE ?
    SI c'est bien un champ DATE, peux tu me donner qq exemples des champs 'inscrit_date_naissance' + résultat de "select extract('epoch' from inscrit_date_naissance)" pour ces mêmes valeurs.

    Je me demande si ton problème vient pas d'une mauvaise conversion lors de l'insertion des données.

    Je viens d'essayer dans tous les sens sur ma machine, et ca marche sans probleme, que ce soit en Fr ou EN.

  15. #15
    Membre Expert
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Par défaut
    je confirme ce que viens de dire spoutnik, un type date que ce soit en mdy ou dmy aura la meme incidence sur les fonctions et donc meme resultat, c'est surrement un probleme dans tes données.

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    inscrit_date_naissance est de type DATE
    Quelques exemples : 25/09/1977, 05/05/1985, 04/07/1980

    J'ai fait "ça select extract('epoch' from inscrit_date_naissance) from inscrit" et ja(i pour la pemière date 331 509 600

  17. #17
    Membre émérite Avatar de Spoutnik
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 672
    Par défaut
    Citation Envoyé par viny
    25/09/1977 => 331 509 600
    Voila le problème !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select timestamp 'epoch' + interval '1 sec' * 331509600
    donne le 4 juillet 1980. Tu as donc un problème dans l'insertion des données. Répare ce problème et ca devrait être bon.

  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    Autant pour moi la valeur que je t'ai envoyé correspond bien au 04/07/1980 que j'ai en base.
    Désolé donc le pb n'est pas résolu !

  19. #19
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    Alors tout le monde a capitulé ?

  20. #20
    Membre émérite Avatar de Spoutnik
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 672
    Par défaut
    bah vi... là, ca devient compliqué de t'aider pouisque tout semble OK

    Ah si, iens, une petite chose encore que je voudrais vérifier, peux tu donner le CREATE TABLE + un jeu de valeurs stp? je testerais ca sur ma machine.

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/04/2009, 13h36
  2. Erreur lors du formattage des dates
    Par Invité dans le forum ASP.NET
    Réponses: 1
    Dernier message: 02/06/2008, 15h31
  3. [multi-lingue] formattage des dates
    Par phoebe dans le forum BIRT
    Réponses: 0
    Dernier message: 31/03/2008, 11h13
  4. Formattage champs date
    Par LeCaméléon dans le forum XMLRAD
    Réponses: 4
    Dernier message: 27/04/2006, 00h08
  5. [CR8.5] Pb de formattage de date
    Par nnj dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 10/11/2004, 12h21

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