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

SQL Oracle Discussion :

Nombre de jours ouvrés entre 2 dates


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 618
    Par défaut Nombre de jours ouvrés entre 2 dates
    Bonjour,

    Je souhaite être à même de déterminer le nombre de jours ouvrés (Lundi à Vendredi) entre 2 dates.
    Y a t-il un moyen simple de réaliser cette requête ?
    Je suis sur Oracle 11g.


    Julien.

  2. #2
    Membre éclairé Avatar de Jean_Benoit
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 499
    Par défaut
    Bonjour,

    J'ai utilisé le format 'D'.
    J'ai une solution par une function pl/sql.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    create or replace function jours_ouvres ( prem date, dern date )
    return number is
     
      ld_date_courante  date;
      ln_intervalle     number(6) := 0;
      ln_compteur       number(6) := 0;
     
    begin
     
      ln_intervalle :=  ( dern - prem ) + 1;
     
      for k in 1..ln_intervalle loop
         ld_date_courante := prem + ( k - 1 );
     
         if to_char ( ld_date_courante, 'D' ) in ( '1', '2', '3', '4', '5' ) then
            ln_compteur := ln_compteur +  1;
         end if;
     
      end loop;
     
      return ln_compteur;
    end;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select empno, 
           hiredate,
           date_mutation,
           jours_ouvres( hiredate, date_mutation )
    from   jbmemp
    order by hiredate desc nulls last

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 618
    Par défaut
    C'est ce que je pensais faire mais n'y a t-il rien d'autre du style ce qu'il y a sur excel ?

    Merci quand même.

  4. #4
    Membre Expert Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Par défaut
    Bonjour,

    Peut-être pourrais-tu préciser ce qu'il y a sur Excel que tu voudrais faire ici ?

    En quoi la solution précédente ne te convient pas ? Elle répond à ta demande pourtant.

  5. #5
    Membre éprouvé Avatar de pinocchio
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2002
    Messages : 795
    Par défaut
    Je pense qu'il fait référence à une fonction sur Excel qui effectue le calcul directement entre deux dates.
    Cette fonction a en plus comme paramètre la possibilité d'indiquer une liste de valeurs correspondant à des jours fériés sur l'intevalle.
    Pour ORACLE, je ne connais pas l'identique sans passer par du PL/SQL comme indiqué précédemment.
    Cordialement

  6. #6
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 618
    Par défaut
    Mon collègue m'avait parlé de joursem mais je ne vois pas comment il peut combiner facilement datediff et joursem sauf à faire de la programmation vba ce qui équivaut à ce que vous proposez.
    Je vais donc utiliser la fonction.

    Merci.
    Julien.

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

Discussions similaires

  1. [Dates] Calcul du nombre de jours ouvrés entre 2 dates
    Par Pokerstar dans le forum Langage
    Réponses: 6
    Dernier message: 16/07/2011, 17h02
  2. Nombre de jours ouvrés entre deux dates
    Par johnson95 dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 17/06/2009, 23h12
  3. [Dates] Nombre de jours ouvrés entre deux date
    Par meufeu dans le forum Langage
    Réponses: 1
    Dernier message: 31/01/2007, 18h50
  4. Réponses: 1
    Dernier message: 10/08/2006, 15h43
  5. Nombre de jours ouvrés entre 2 dates
    Par motlerang dans le forum Langage SQL
    Réponses: 1
    Dernier message: 13/12/2005, 14h25

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