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 :

Une traduction SVP


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 138
    Par défaut Une traduction SVP
    Bonjour à tous,

    Je repasse derrière un informaticien qui n'a laissé aucune note, et je viens de tomber sur une procédure qu'il avait créé à l'époque. Je comprend les 3/4 de la procédure, sauf le début... quelqu'un aurait-il la gentillesse de me traduire en langue française ce que fait le début de la procédure svp ? Apparament c'est un calcul à base de date mais je ne comprend pas...

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    begin
    for i in 0..7
    loop
    DATE1:=to_date(to_char(sysdate-1,'DD/MM/YYYY')||' '||substr('0'||i*3||':00:00',length(to_char(i*3)),9),'DD/MM/YYYY HH24:MI:SS');
        if i!=7 then
           DATE2:=to_date(to_char(sysdate-1,'DD/MM/YYYY')||' '||substr('0'||(i+1)*3||':00:00',length(to_char((i+1)*3)),9),'DD/MM/YYYY HH24:MI:SS');
        else
            DATE2:=to_date(to_char(sysdate,'DD/MM/YYYY')||' 00:00:00','DD/MM/YYYY HH24:MI:SS');
        end if;
    Merci d'avance

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 818
    Billets dans le blog
    14
    Par défaut
    C'est particulièrement tordu mais si tu décomposes la fonction, tu dois arriver à décripter ce qu'elle fait ?
    Il y a une syntaxe que tu ne comprends pas quelque part ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 138
    Par défaut
    Dans la suite de la procédure il fait une sélection entre les 2 dates :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where h.datemodif>=DATE1 and h.datemodif<=DATE2
    Ce que je comprend pas c'est le calcul dans le code que j'ai précédement collé... A quoi correspond DATE1 ? DATE 2 ? Pourquoi cet interval de 1 à 7 ?

    Je veux bien te croire quand tu dis que c'est tordu lol ... c'était bien le genre du bonhomme.

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 818
    Billets dans le blog
    14
    Par défaut
    [quote=BZH75;4983500] A quoi correspond DATE1 ? DATE 2 ?[ /quote]
    Ce sont apparemment deux variables dont les valeurs sont déterminées par la procédure.

    Pourquoi cet interval de 1 à 7 ?
    D'abord je crois que c'est un intervalle de 0 à 7 et les infos que tu nous donnes sont insuffisantes pour le savoir.

    Il semble que la partie ci-dessous crée des DATETIME de 0 à 21h à l'aide de la boucle sur i :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    substr('0'||i*3||':00:00
    Pour comprendre le calcul, décompose le et exécute des requêtes SELECT sur les parties en augmentant petit à petit la complexité.
    Par exemple sur cette partie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    to_char(sysdate-1,'DD/MM/YYYY')
    sysdate = '2010-02-10'
    sysdate - 1 = '2010-02-09'
    to_char(sysdate-1, 'DD/MM/YYYY') = '09/02/2010'
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 138
    Par défaut
    Ok merci pour les pistes... je vais tenter comme tu dis !

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    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 454
    Par défaut
    Il découpe une journée en huit tranches de trois heures.
    Date1 commence à minuit, Date2 vaut la Date1 "suivante".

    On peut l'écrire ainsi, c'est plus court :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    declare
      DATE1 date;
      DATE2 date;
    begin
      FOR i IN 0..7
      loop
        DATE1:= trunc(sysdate-1) + i     * 3/24;
        DATE2:= trunc(sysdate-1) + (i+1) * 3/24;
      end loop;
    end;
    /

Discussions similaires

  1. Petite traduction svp
    Par ToTo13 dans le forum C
    Réponses: 12
    Dernier message: 28/04/2007, 15h45
  2. une initiation svp
    Par chelsea23 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 09/01/2007, 11h12
  3. [RegEx] Aide pour une REGEX svp
    Par Invité dans le forum Langage
    Réponses: 2
    Dernier message: 12/07/2006, 17h41
  4. Comment modifier hauteur d'une listview svp ?
    Par windowsxx2001 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 15/06/2006, 18h34

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