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 Perl Discussion :

Perl-BDD--> Traiment de données de type Time


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 16
    Par défaut Perl-BDD--> Traiment de données de type Time
    Bonjour,

    débutant en perl je souhaiterai collecter des données à partir d'uneBDD pour calculer à chaque fois la différence entre deux données qui se suivent.

    Les données stockées dans la BDD sont de type time (ex : 13:50:03).

    Je sais comment faire pour récupérer ces données à partir de ma BDD en perl. Mais j'arrive pas à trouver une fonction perl pour que je puisse faire des opérations (soustraction, addition) sur ces données d'une manière rapide (sans passée par un traitement à la chaîne près)

    Merci d'avance si quelqu'un pourra m'aider.

  2. #2
    Membre chevronné
    Avatar de Schmorgluck
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 371
    Par défaut
    Je crains qu'il soit impossible d'échapper à un traitement de la chaîne, le type SQL time étant ce qu'il est. Ceci dit, ce n'est pas compliqué.

    Mettons que tu as récupéré ton heure dans une chaîne $time.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    my $seconds=0;
    $seconds= $seconds*60+$_ foreach (split /:/, $time) ;
    Tu obtiens ton heure en secondes, et tu peux faire tes soustractions, additions, comparaisons, ça marchera... tant que tes heures appartiennent à une même journée, s'entend.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 16
    Par défaut
    Merci Schmorgluck,

    Au moins avec ça je pourrai avancer. Quoiqu'il reste toujours un problème lorsque la date change .

  4. #4
    Membre chevronné
    Avatar de Schmorgluck
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 371
    Par défaut
    Ben, tu as probablement une colonne de type date dans ta base, non ? Du coup, une colonne de type DATETIME aurait peut-être été préférable, soit dit en passant, mais bon.

    Dans ce cas-là, ça se complique un peu, mais pas tant que ça, et ça en vaut la chandelle. Renseigne-toi sur le module Time::Local, notemment la fonction timelocal, à utiliser conjointement avec la fonction localtime. Combinées à un usage judicieux de split, ça devrait faire ton bonheur.

Discussions similaires

  1. Réponses: 31
    Dernier message: 19/02/2015, 16h03
  2. Réponses: 24
    Dernier message: 06/03/2013, 21h06
  3. Somme de données de type TIME
    Par _cece dans le forum iReport
    Réponses: 2
    Dernier message: 12/02/2010, 09h19
  4. Réponses: 4
    Dernier message: 05/10/2009, 18h58
  5. le meilleur moyen de stocker des données de type TIME?
    Par EvilGost dans le forum Développement
    Réponses: 3
    Dernier message: 10/10/2008, 16h13

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