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 :

Faire une somme d'heures au format VARCHAR


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Par défaut Faire une somme d'heures au format VARCHAR
    Bonjour,

    Sous Delphi 7 et Firebird j'ai un champ FEUDUREECHANTIER d'une table FEU qui donne par fiche de pointage journalière le temps passé sur un chantier.

    Ce champ est au format VARCHAR alimenté donc par des heures formatées (--:--) par un TMaskEdit.

    J'aimerais arriver à faire la somme des heures passées sur chaque chantier. Existe il un moyen de faire la somme de ces heures par chantier?

    D'avance merci

    Cordialement

  2. #2
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut

    Question bête: pourquoi as-tu stocké des heures en VARCHAR ?
    Ne peux-tu modifier ce temps et le basculer en numérique ? Stockage en heures ou minutes ou heures décimales.
    Il me semble que ta gestion en sera nettement simplifiée.

    @+ Claudius

  3. #3
    Membre Expert Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 553
    Par défaut
    IL existe bien évidemment de multiples solutions :
    1/ tu récupères tes 'varchar' dans ton prog, tu les transformes en mnet puis tu fais la somme.
    2/ tu fais la manip. avec une requète SQL mais là ça dépend de ta base.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Par défaut
    Bonsoir à tous,

    Pour Claudius: avec le recule je reconnais que c'est une erreur mais c'était pour une facilité de saisie et d'affichage. Erreur que je peux encore corriger mais ça implique que je reprenne le code de toute la saisie et je ne maitrise pas trop la gestion des heures, je l'avoue!!

    En fait sur mon formulaire de pointage journalier j'ai mis quatre TMaskEdit correspondant à:
    Heure départ dépôt
    Heure arrivée chantier
    Heure départ chantier
    Heure arrivée dépôt

    Le but étant de voir chaque jour les temps passés en trajet et sur le chantier et de faire la somme par chantier des temps trajets et chantier.

    Donc pour faciliter la saisie les TMaskEdit ont le format (--:--) et enregistré comme tel dans le champ FEUDUREECHANTIER pour ce qui concerne les chantiers.

    En numérique je ne sais pas comment faire pour les afficher dans mon form?

    pour philnext:
    tu récupères tes 'varchar' dans ton prog, tu les transformes en mnet puis tu fais la somme
    Si tu peux m'expliquer comment je les transforme en mn et pour les intégre dans une requête SELECT SUM? ma base de données est une base Firebird.

    D'avance merci

    Cordialement

  5. #5
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut
    Ouvre un nouveau project et ajout 3 TEDit et un button1.
    Cet exemple montre la soustraction d'une heure.
    Colle ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    procedure TForm1.Button1Click(Sender: TObject);
    var time1,time2:TTime;
    begin
    time1:=StrToTime(Edit1.Text);
    time2:=StrToTime(Edit2.Text);
    Edit3.Text:=TimeToStr(time1-time2);
    end;
    Les heurs que tu rentre doivent être du format "HEUR:MIN:SEC"
    par exemple si tu entre dans Edit1 : 11:00:00 et dans edit 2 tu entre :1:00:00
    tu obtiens 10:00:00;

    Bon courage !

    psour transformer des Int en String, tu fait : IntToStr(Ta valeur);

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Par défaut
    Bonjour,

    merci pour ta réponse, mais ça c'est fait. le problème est que je stocke mais heures en varchar dans ma BDD.

    Il faudrait que je les stocke en numérique pour pouvoir les additionner, en tenant compte des 24 heures naturellemeny, et là je bute.
    Dans ma base je dois stocker quoi? Du numérique ou du Time.

    Cordialement

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

Discussions similaires

  1. Faire une somme d'heures au format VARCHAR (Suite)
    Par codial dans le forum Bases de données
    Réponses: 9
    Dernier message: 02/03/2008, 11h59
  2. Probleme pour faire une somme sous Excel
    Par Nicolas92 dans le forum Excel
    Réponses: 5
    Dernier message: 02/12/2005, 11h38
  3. Probleme pour faire une somme dans header ??
    Par snoop57 dans le forum Access
    Réponses: 7
    Dernier message: 01/12/2005, 13h40
  4. filtrer saisies et faire une somme globale
    Par mcellier dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/09/2005, 17h00
  5. faire une somme dans un état
    Par PAINCO dans le forum Access
    Réponses: 1
    Dernier message: 23/06/2005, 19h41

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