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 :

Calcul numéro de semaine [11gR2]


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 131
    Points : 60
    Points
    60
    Par défaut Calcul numéro de semaine
    Bonjour je voudrais par la commande suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select to_char(sysdate, 'iw')+1 from dual;
    recupérer le numéro de la semaine suivante.

    La dernière semaine de l' année me pose un problème et je voudrais de l' aide pour le résoudre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select to_char(to_date('30.12.2020'), 'iw')+1 from dual;
    me donnera 54
    comme numéro de semaine.

    Je ne sais pas comment faire pour obtenir après la dernière semaine de l'année
    la première semaine de l'année suivante.

    merci

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 138
    Points : 1 918
    Points
    1 918
    Par défaut
    Bonjour,

    Oui il faut appliquer les calculs sur la date, pas sur le résultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select to_char(to_date('30.12.2020', 'dd.mm.yyyy')+7, 'iw')+1 from dual;
    J'ai ajouté le masque de format au TO_DATE car un TO_DATE sans celui-ci ne sert à rien.

  3. #3
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Vanagreg, tu as oublié d'enlever le +1 dans ta requête (vu qu'il correspond au +7 jours).
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 138
    Points : 1 918
    Points
    1 918
    Par défaut
    Bien vu!

  5. #5
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 131
    Points : 60
    Points
    60
    Par défaut
    Danke Vanagreg,

    le resultat de ta requête est de loin meilleur que le mien.
    Seulement lorsque je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select to_char(to_date('30.12.2020')+7, 'iw')+1 from dual;
    j'obtiens 2 comme résultat.

    je me serai attendue à obtenir 1. Car selon le calendrier 2020 a 53 semaines.

    Merci

  6. #6
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 131
    Points : 60
    Points
    60
    Par défaut
    Merci à tous les deux,

    je viens en effet de prendre connaissance de la reponse de MCM. En effet en enlevant le +1 j' ai effectivement le résultat souhaité.

    encore une fois MERCI infiniment

  7. #7
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Attention, toujours mettre le format d'une date, sinon un simple changement de NLS va planter la requête ou pire donner un résultat faux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    to_date('30.12.2020', 'DD.MM.YYYY')
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

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

Discussions similaires

  1. Résultat du Calcul numéro de semaine erroné
    Par jerem7w dans le forum SQL
    Réponses: 2
    Dernier message: 07/09/2010, 13h38
  2. [MySQL] Calcul numéro de semaine en fonction d'une date
    Par Devilju69 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/06/2009, 20h11
  3. Calculer le numéro de semaine d'une date
    Par chandlerbing77 dans le forum Access
    Réponses: 2
    Dernier message: 09/06/2006, 12h26
  4. [excel]calcul du numéro de semaine
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 13/10/2005, 11h57
  5. Calcul des numéros de semaine d'un calendrier
    Par Invité dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 06/11/2002, 21h29

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