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

Langage SQL Discussion :

Somme de champs TimeStamp


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 57
    Points : 29
    Points
    29
    Par défaut Somme de champs TimeStamp
    Bonjour à tous,

    Ma question tient dans le titre, comment faire pour additionner des champs Timestamp (Base de données Infocob, au format .gdb).

    Ces champs Timestamp contiennent des durées ,et les données qu'ils contiennent sont de la forme suivante : "30/12/1899 00:12:55"

    Merci pour votre aide.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 109
    Points : 28 437
    Points
    28 437
    Par défaut
    Le type TIMESTAMP est utilisé pour définir des instants (une date et une heure) et non des durées.
    Il est donc normal que des colonnes de type TIMESTAMP ne puissent s'additionner.

    Les durées doivent être enregistrées dans un type INTERVAL.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 57
    Points : 29
    Points
    29
    Par défaut
    J'imagine bien que le type de données utilisé n'est pas le bon, mais je ne peux pas le modifier.

    Ce champ de type stamptime contient bien des données dans cette base et je suis chargé de calculer la somme du temps passé par mes collègues sur leurs affaires.

    Comment serait-ce possible?

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Peut-être avec un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT SUM(EXTRACT(TIME FROM colonnetimestamp))
    FROM latable

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 57
    Points : 29
    Points
    29
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT AFFAIRE.AF_NOM AS Nom_Affaire, AFFAIRE.AF_CODE AS Code_Affaire , CONTACTFICHE.C_NOM AS Client, [sum(hour(HISTORIQUE.H_DUREE)))+ (sum (minute(HISTORIQUE.H_DUREE)))/60]as TEMPS_passé
     
      FROM HISTORIQUE,AFFAIRE INNER JOIN CONTACTFICHE ON CONTACTFICHE.C_CODE=AFFAIRE.AF_INTERLOCUTEUR 
      WHERE HISTORIQUE.H_CODECONTACT=CONTACTFICHE.C_CODE 
      GROUP BY AFFAIRE.AF_NOM, AFFAIRE.AF_CODE, CONTACTFICHE.C_NOM

    Merci pour ta réponse CinePhil mais cela ne fonctionne pas, j'essaie avec le code ci-dessus mais sans succès également...

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Essayez de faire une soustraction (ou un datediff) entre votre champ et votre date de départ (30/12/1899 00:00:00 ?).
    Celà devrait vous donner une durée (au format interval ou au format jour ou autre, je ne connais pas Infocob).

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 57
    Points : 29
    Points
    29
    Par défaut
    Merci pour vos réponses, mais j'ai trouvé comment me dépatouiller en utilisant d'autres champs

Discussions similaires

  1. [SQL] un champ Timestamp ou deux champs Date et Heure?
    Par davmaster62 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 25/02/2006, 23h04
  2. somme des champs null
    Par s.rais dans le forum Access
    Réponses: 4
    Dernier message: 09/02/2006, 09h05
  3. Afficher la somme de champs d'un sous-formulaire
    Par pyxosledisciple dans le forum Access
    Réponses: 1
    Dernier message: 20/01/2006, 09h34
  4. Somme des champs ? existe t il une fonction ...
    Par dark_vidor dans le forum Langage SQL
    Réponses: 6
    Dernier message: 02/01/2006, 11h57
  5. where avec un champ timestamp
    Par DBBB dans le forum SQL
    Réponses: 3
    Dernier message: 26/05/2004, 11h20

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