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

Oracle Discussion :

Numero de semaine -> date debut, date fin [Sources]


Sujet :

Oracle

  1. #21
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Je cherchais à faire l'équivalent de to_date('&P_SEMAINE &P_ANNEE', 'IW IYYY') qui est invalide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select to_char(
             to_date('001 &P_ANNEE', 'DDD YYYY') - premierJour + 1 +
               case when premierJour <= 4 then 0 else 7 end +
               (&P_SEMAINE - 1) * 7
           , 'DAY DD/MM/YYYY')
      from (select to_number(to_char(to_date('001 &P_ANNEE', 'DDD YYYY'), 'D')) premierJour from dual)
    C'est le plus compréhensible que j'ai pu faire.

    Si on ne veut pas ajouter d'accès à DUAL, on peut utiliser directement l'expression suivante qui est équivalente à ce qui était recherché en haut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    to_date('001 &P_ANNEE', 'DDD YYYY') - to_number(to_char(to_date('001 &P_ANNEE', 'DDD YYYY'), 'D')) + 1 + case when to_number(to_char(to_date('001 &P_ANNEE', 'DDD YYYY'), 'D')) <= 4 then 0 else 7 end + (&P_SEMAINE - 1) * 7
    Après quelques tests, ça a l'air de fonctionner. Il faudrait regarder tout de même ce que ça donne avec d'autre réglages régionaux que la France.

  2. #22
    Futur Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Évolution de la requête : gestion de la nouvelle année
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT greatest(
            trunc(
                to_date(y||'-01-01','RRRR-MM-DD'),'IW')+(w)*7
              , to_date(y||'-01-01','RRRR-MM-DD')
           ) AS Lundi
           , decode(
               to_char(trunc(to_date(y||'-01-01','RRRR-MM-DD'),'IW')+6+(w)*7,'YYYY')
               , to_char(to_date(y||'-12-31','RRRR-MM-DD'),'YYYY')
               , least(trunc(to_date(y||'-01-01','RRRR-MM-DD'),'IW')+6+(w)*7, to_date(y||'-12-31','RRRR-MM-DD'))
               , greatest(trunc(to_date(y||'-01-01','RRRR-MM-DD'),'IW')+6+(w)*7, to_date(y||'-12-31','RRRR-MM-DD'))
            ) AS Dimanche
    FROM (SELECT '2010' y, '52' w FROM dual);

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/07/2013, 21h24
  2. [AC-2007] demande de date debut et fin
    Par titi57 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 22/12/2011, 22h52
  3. datetimepicker date debut date fin
    Par monlio dans le forum jQuery
    Réponses: 3
    Dernier message: 02/12/2010, 23h46
  4. Réponses: 3
    Dernier message: 23/03/2009, 09h25
  5. Formulaire avec date debut date fin
    Par Merfolk dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 29/08/2006, 15h48

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