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

Bases de données Delphi Discussion :

récuperer année d'un champ date


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 58
    Points : 16
    Points
    16
    Par défaut récuperer année d'un champ date
    bonjour ,comment récuperer seulement l'année d'un champ "date de naisssance"pour le mettre dans un autre champ string 'annee"
    merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Table1.Edit;
     trunc(Table1.FieldByName('Date de naissance').AsDatetime):=Table1.FieldByName('annee').AsString;
     Table1.Post;
    ça ne marche pas mais il doit y avoir un truc comme ça
    merci

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 33
    Points : 32
    Points
    32
    Par défaut Re: récuperer année d'un champ date
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var MonAnnee:word;
    MonAnnee:=YearOf(Table1.FieldByName('Date de naissance').AsDatetime);

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 58
    Points : 16
    Points
    16
    Par défaut t
    merci
    il me dit YearOf non déclaré
    merci

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 33
    Points : 32
    Points
    32
    Par défaut
    ha pardon ! Il faut déclarer l'unité DateUtils, de mémoire !

  5. #5
    Seb
    Seb est déconnecté
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 81
    Points : 97
    Points
    97
    Par défaut
    Salut,

    Tu utilises quelle version de Delphi? Je crois (à confirmer) que la fonction n'est définie qu'à partir de Delphi 5 (dans l'unité DateUtils).

    Sinon as-tu ajouté dans les Uses le DateUtils?
    Cela change-t-il quelque chose?

    Autre possibilité : passer par DecodeDate.

    A+,

    Seb.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 58
    Points : 16
    Points
    16
    Par défaut t
    merci pour dateutils
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Table1.FieldByName('annee').AsString:=YearOf(Table1.FieldByName('Date de naissance').AsDatetime);
    il me dit [Erreur] Unit2.pas(617): Types incompatibles : 'String' et 'Word'

    merci

  7. #7
    Seb
    Seb est déconnecté
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 81
    Points : 97
    Points
    97
    Par défaut
    Re,

    Le YearOf te renvoie un Word et tu veux le mettre dans une chaîne de caractères.

    Essayes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Table1.FieldByName('annee').AsString:=IntToStr(YearOf(Table1.FieldByName('Date de naissance').AsDatetime));
    A+,

    Seb.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 58
    Points : 16
    Points
    16
    Par défaut h
    resalut,
    j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    procedure TForm2.EditDatedenaissanceChange(Sender: TObject);
     begin
      table1.edit;
       Table1.FieldByName('annee').AsString:=IntToStr(YearOf(Table1.FieldByName('Date de naissance').AsDatetime));
        table1.post;
     end;
    mais il me dit
    le projet a provoqué une classe d'exception Econvertor Error avec le message "0604/19/95' n'est pas une date correcte
    merci

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 33
    Points : 32
    Points
    32
    Par défaut
    Quelle valeur as tu dans 'Date de naissance' ? Apparemment ce n'est pas une date valide

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 58
    Points : 16
    Points
    16
    Par défaut tomm
    ma valeur est 06/04/1995
    j'ai enlevé edit mask au champ date de naissance et là je n 'ai plus le message.ça marche pour la premier enregistrement et qUAND JE ME DéPLACE AVEC LE DBNAVIGATOR IL ME DIT DE SUITE TABLE PAS EN MODE EDITION OU INSERTion
    merci

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 58
    Points : 16
    Points
    16
    Par défaut tom
    Voilà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    table1.edit;
       Table1.FieldByName('annee').AsString:='';
       table1.Post;
       table1.Edit;
      Table1.FieldByName('annee').AsString:=IntToStr(YearOf(Table1.FieldByName('Date de naissance').AsDatetime));
      table1.post;
    je l'ai mis au click du bouton enregistrement de la fiche et plus au change du dbedit et ça marche.Par contre il a fallu que je rajoute les 3 premieres lignes au cas ou l'utilisatuer changerait la date de naissance pendant la session avec DBisave changes au comosanttable after post
    par contre je ne sais si c'est le meilleur endroit pour le code.
    merci

  12. #12
    Nouveau Candidat au Club
    Inscrit en
    Avril 2002
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    tu peux aussi utiliser la fonction

    copy

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    table1.edit;
    Table1.FieldByName('annee').AsString:=copy(Table1.FieldByName('Date de naissance').astring,7,4);
    table1.post;

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/08/2008, 13h44
  2. Récuperer l'année dans un champ date
    Par dominux80 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 02/07/2008, 15h39
  3. Extraire mois et année d'un champs date
    Par cnguyen dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/07/2006, 11h56
  4. Récupérer l'année dans un champ date
    Par griese dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/07/2006, 16h23
  5. [SQL Server] Selectionner juste l'année d'un champ date
    Par calison3 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/03/2006, 12h35

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