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 :

Date du jour à partir d'un numéro de la semaine


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 109
    Points : 56
    Points
    56
    Par défaut Date du jour à partir d'un numéro de la semaine
    Bonjour les collègues,

    J'ai besoin de votre aide,
    Je veux retourner la date du dernier jour d'une semaine c'est à dire la date du dimanche de la semaine à partir d'un numéro de la semaine par exemple j'ai le numéro de la semaine '201352'.
    Donc je veux savoir la date du dernier jour de la semaine '201352' par exemple.

    J'attends vos réponses, bonne soirée.

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    La solution risque fort d'être propre à votre SGBD. Quel est-il ?

  3. #3
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 109
    Points : 56
    Points
    56
    Par défaut
    Bonjour,

    Merci pour votre réactivité, mon SGBD est Oracle

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut
    Le plus simple est de passer par une table calendrier :
    http://www.developpez.net/forums/d11...-jours-feries/

    Dès lors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select cal_jour
      from v_calendrier
     where cal_semaine_iso      = '2013W52'
       and cal_position_semaine = '7';
     
    CAL_JOUR
    ----------
    2013-12-29
    Attention à la position du jour dans la semaine.
    En Europe les semaines vont du lundi au lundi, en Amérique du nord du dimanche au dimanche.

  5. #5
    Membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Janvier 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2014
    Messages : 28
    Points : 47
    Points
    47
    Par défaut
    Le code suivant donne le premier dimanche (voir post précédent, suivant le paramétrage de la base, il faudra ", 1" et non ", 7" pour avoir le dimanche) de l'année :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select next_day(to_date('20130101','YYYYMMDD'),7) from dual;
    tu peux ajouter le nombre de semaines voulues :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select next_day(to_date('20130101','YYYYMMDD'),7)+7*(semaine-1) from dual;
    select next_day(to_date('20130101','YYYYMMDD'),7)+7*51 from dual; -- pour ton cas

  6. #6
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6
    Par défaut
    Bon raisonnement
    Sauf que,l'année a plus de 52 semaines (52 + quelques jours).
    On peut dire que l'année comporte 53 semaines.
    Prenant l’exemple de l'année 2006 sachant que 01 janvier est le premier jour de la semaine, si tu considère que la semaine commence par un dimanche. On constate que l'année possède 52 semaine et un jour, ça confirme que la dernière semaine de l'année englobe une journée. Donc, dans ta requête il y a un décalage d'une semaine
    d'avoir Pensé à voter positivement pour ceux qui vous ont aidés et surtout à mettre si le cas.
    ça encourage.

  7. #7
    Membre éclairé Avatar de jkofr
    Homme Profil pro
    Senior Consultant DBA (Trivadis SA)
    Inscrit en
    Octobre 2006
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Senior Consultant DBA (Trivadis SA)
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 484
    Points : 724
    Points
    724
    Par défaut
    Hello

    Cela te convient?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT to_char (MyDt - to_number (to_char (MyDt,'D')),'YYYY-MM-DD') MyDate
    FROM (SELECT to_date (to_char (to_date(substr ('201352',1,4),'YYYY')+(to_number (substr ('201352',5,2)))*7,'YYYY-MM-DD D'),'YYYY-MM-DD D') MyDt  FROM dual)
    jko
    OCM 11g, RAC and Performance & Tuning Expert 11g
    RMAN Backup & Recovery, Data Guard and Grid Control

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/11/2009, 12h41
  2. La date du jour à partir de time(null)
    Par sonorc dans le forum Débuter
    Réponses: 10
    Dernier message: 14/11/2008, 00h34
  3. Réponses: 2
    Dernier message: 20/01/2007, 21h42
  4. [Date] Jour à partir de son numéro dans l'année
    Par boby123 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 22/11/2006, 17h58
  5. Réponses: 6
    Dernier message: 25/09/2006, 15h51

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