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 :

Pb avec numero de semaine


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 20
    Points : 10
    Points
    10
    Par défaut Pb avec numero de semaine
    Bonjour,

    Voici mon pb : j'aimerais remonter la date du debut ou de fin de semaine pour un n° de semaine donnée :

    ex : fonction("02") renverrait 09/01/2006 (qui correspondrait au Lundi de la semaine 02 (de cette année ...)

    si vous avez des idées ....

    Merci d'avance

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Sous Oracle, que penses-tu de quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT TO_DATE('01/01/2006', 'DD/MM/YYYY') + 1*7 + 1
    FROM DUAL
    [edit]
    Euh... attends il me semble que quelque chose ne tourne pas rond : la 2ème semaine de cette année commence le lundi 2 janvier, non ?
    [/edit]
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 99
    Points : 110
    Points
    110
    Par défaut
    Le soucis c'est que le 01/01/2006 n'est pas le premier jour de la première semaine de l'année...

    Après tu peux mettre le 02/01/2006 mais cela veut dire que ça ne marchera pas pour les années suivantes.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 99
    Points : 110
    Points
    110
    Par défaut
    Citation Envoyé par Magnus
    [edit]
    Euh... attends il me semble que quelque chose ne tourne pas rond : la 2ème semaine de cette année commence le lundi 2 janvier, non ?
    [/edit]
    La première semaine de cette année commence, au point de vu légale, le 02/01/2006 => la deuxième semaine commence le 09/01/2006...

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    mes explications n'etaient peut-etre pas tres clair ...

    Tout ce que j'ai "en ma possession" c'est un n° de semaine ... a partir de cela je cherche une (ou des ) fonctions SQL qui me permettrait de me donner la date de debut et/ou la date de fin de cette semaine en question ...

    je vois a peu pres ce que va donner le code que tu m'as fourni ..... ca pourrait etre un contournement astucieux ....

  6. #6
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Hypothèse : tu utilises le N° de semaine ISO 8601
    tu utilises ORACLE (mais facile à traduire) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT to_date('01/01/2006', 'DD/MM/YYYY') + 
           7 * (&Semaine - 1) + 
           4 - Mod(to_number(to_char(to_date('01/01/2006', 'DD/MM/YYYY'), 'D')) + 3, 7)
    Pour avoir la fin de semaine il suffit d'ajouter 6 au calcul précédent.
    Facile de modifier pour avoir n'importe quelle année.
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    c'est bien ce que je me disais ...le code me convient parfaitement .....

    Merci a tous pour votre aide ....

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

Discussions similaires

  1. transformer date en numero de semaine et inversement avec Weekday
    Par Scopas dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 25/03/2009, 21h08
  2. Réponses: 1
    Dernier message: 28/01/2009, 09h01
  3. calcul date avec numero semaine et annee
    Par gboc06 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 06/12/2007, 22h10
  4. Réponses: 3
    Dernier message: 07/08/2006, 10h01
  5. [VB6] Avec num. de semaine, savoir le 1er et der. jour ouvrable?
    Par lololefada dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/01/2004, 13h07

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