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

Modules Perl Discussion :

[D�butant] Encore des dates


Sujet :

Modules Perl

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre habitu�
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2002
    Messages : 8
    Par d�faut [D�butant] Encore des dates
    Bonjour,

    Je suis en train de bosser sur un petit rapport qui se connecte � une base Mysql.

    Ce script sera ex�cut� tous les dimanches.

    Ce rapport doit g�n�rer des �tats jour par jour d'un dimanche � un autre dimanche.

    Mon select SQL doit donc �tre ex�cut� 7 fois avec une clause where correspondant � la date du jour.

    Ma question, c'est comment je peux r�cup�rer les 7 derni�res dates dans des variables disctinctes � partir de la date d'ex�cution pour pouvoir ensuite les int�grer dans une boucle.

    La date est d�finie comme suit:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    use POSIX qw(strftime);
    $now_string = strftime "%c %h", localtime;
    Ensuite je vai inclure ce select dans une boucle, et la fameuse date sera dans la clause where ($DATEOFTHEDAY):
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $sndtocaisse_sql = $dbh->prepare
    ("select count(*) from transport
       where receiverid=$idcaisse
         and statustypid=100
         and LEFT(SUBSTRING_INDEX(filename, '.', -2), 6) = $DATEOFTHEDAY");
     $sndtocaisse_sql->execute;
     while( ($sndtocaisse) =$sndtocaisse_sql->fetchrow()

  2. #2
    Membre �prouv�
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : Bioinformaticienne
    Secteur : Sant�

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par d�faut
    Bonjour,

    Je ne suis pas certaine d'avoir tout compris.
    Tous les dimanches tu vas ex�cuter ce script qui va aller interroger 7 fois ta DB pour les 7 jours de la semaine. Est-ce bien �a?
    Tu parles de r�cup�rer les 7 derni�res dates...mais tu veux les r�cup�rer dans ta DB? Ou juste prendre la date du jour et � partir de celle-ci retrouver les dates des 6 jours pr�c�dents?

    Pour ce qui est d'interroger MySQL voici comment je fais

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    use Time::localtime;
     
    my $Annee = localtime->year() + 1900;
    my $Mois = localtime->mon() + 1;
    my $Jour = localtime->mday();
     
     
    my $Date = sprintf("%04d",$Annee)."-".sprintf("%02d",$Mois)."-".sprintf("%02d",$Jour);
    Cela correspond � la date du jour en format SQL.




    DATE_ADD(date,INTERVAL expr type), DATE_SUB(date,INTERVAL expr type)

    Ces fonctions effectuent des calculs arithm�tiques sur les dates.

    Depuis MySQL 3.23, INTERVAL expr type est autoris� des deux cot�s de l'op�rateur + si l'expression de l'autre cot� est de type DATE ou DATETIME. Pour l'op�rateur -, INTERVAL expr type est autoris� uniquement du cot� droit, car on ne peut pas soustraire une date d'un intervalle (voir les exemples ci-dessous).

    date est une valeur de type DATETIME ou DATE qui sp�cifie la date de d�but. expr est une expression qui sp�cifie une valeur d'intervalle � ajouter ou soustraire de la date initiale. expr est une cha�ne : elle peut commencer avec �-� pour les intervalles n�gatifs. type est un mot-cl�, indiquant comment l'expression doit �tre interpr�t�e.


    http://dev.mysql.com/doc/refman/5.0/...functions.html


    my $sql = "SELECT....FROM transport WHERE Date = (SELECT DISTINCT DATE_SUB($Date, INTERVAL 6 DAY))";
    my $sth = $DBconnect->prepare($sql) or print "erreur de preparation SQL\n";
    $sth->execute or die "Could not execute SQL statement ... maybe invalid?";
    et de m�me avec 5, 4, 3, 2, 1 jours


    J'esp�re que cela t'aidera un peu.

    Jasmine,

Discussions similaires

  1. [D�butant] Manipuler des Date/Time
    Par Heri75011 dans le forum Prolog
    R�ponses: 7
    Dernier message: 25/03/2014, 14h48
  2. [AC-2003] [D�butant] Gestion des dates
    Par KiRiL38 dans le forum IHM
    R�ponses: 6
    Dernier message: 12/11/2009, 14h40
  3. [D�butante] Manipuler des dates
    Par sab_etudianteBTS dans le forum Langage
    R�ponses: 3
    Dernier message: 04/05/2007, 17h23
  4. [WD9] [D�butante] Manipulation des dates
    Par Ando Nelly dans le forum WinDev
    R�ponses: 2
    Dernier message: 19/04/2006, 08h24
  5. probleme de date (toujours et encore des dates)
    Par Yannesco dans le forum SQL
    R�ponses: 3
    Dernier message: 02/02/2004, 19h04

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