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 :

Récupérer le premier jour d'une semaine donnée


Sujet :

SQL Oracle

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Récupérer le premier jour d'une semaine donnée
    Bonjour,

    Avec un numéro de semaine et une année, j'essaie de récupérer la date du lundi de la semaine en question...
    Savez-vous si c'est possible?
    J'ai essayé (en voulant le premier jour de la semaine 3 de l'année 2009)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select  to_date('1/03/2009','D/IW/IYYY')  from dual
    en m'attendant à une réponse genre 12/01/2009, mais j'ai l'erreur suivante (sous TOAD):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ORA-018120 : format code cannot appear in date input format
    Si ça n'est pas possible, comment "ruser"?

    Merci de votre aide!

  2. #2
    Invité
    Invité(e)
    Par défaut
    la question a déjà été posée et répondue sur le forum.
    Je t'engage à faire une recherche pour retomber dessus.

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Je ne trouve pas de situation se rapprochant de la mienne... j'ai cherché mon numéro d'erreur mais je n'ai pas trouvé de résultat.
    1. sur quel forum dois-je chercher? SQL ou PL/SQL?
    2. as-tu une idée de recherche car to_date renvoie trop de réponses...

    Sinon, j'ai vu un post du 26/11/2008 (1° jour du Mois par Devlop++)...mais je ne vois pas comment l'appliquer à mon cas.
    Dans la discussion, on donne une date, et on veut le premier jour du mois : il "suffit" pour Oracle de modifier la partie "jour" de la structure date et d'y mettre 01 à la place et de retourner le tout.
    Mais dans mon cas, il faudrait que j'arrive au moins à lui donner un jour précis d'un mois... et je ne l'ai pas.

    J'aurai aimé utiliser ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select NEXT_DAY( '31/01/2004', 'Lundi' ) from dual ;
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT TRUNC(SYSDATE, 'DAY') FROM dual
    qui ramène le premier jour de la semaine mais je ne peux pas fournir le 31/01... juste le numéro de la semaine.

    Quelqu'un a une idée? une piste?

  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 820
    Points
    17 820
    Par défaut
    Essayez ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT TRUNC(to_date('2009/03','IYYY/IW'), 'DAY') FROM dual

  5. #5
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332
    Par défaut
    Bonjour,

    essaie ca

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    SELECT to_char(nxt_week,'IW') WEEK, nxt_mon 
    from (select NEXT_DAY( '31/01/2004', 'Lundi' ) nxt_week, next_day('31/01/04','Lundi') nxt_mon FROM dual
    ) 
    /

    asktom.oracle.com tahiti.oracle.com otn.oracle.com

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.


    phrase chinoise issue du Huainanzi

  6. #6
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par nefnif Voir le message
    premier jour de la semaine 3 de l'année 2009

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select trunc(date '2009-07-01','iy')+3*7+0 from dual;
    19.01.2009
    avec IY=2009 IW=3 et day-of-week=0 (lundi)

    PS: il faut bien savoir si c'est vraiment l'année ISO qu'on veut utiliser!!!

Discussions similaires

  1. recherche premier jour d'une semaine
    Par lazzeroni dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 08/06/2008, 17h03
  2. Premier jour d'une semaine et le dernier
    Par Philippe608 dans le forum Excel
    Réponses: 4
    Dernier message: 25/05/2008, 14h28
  3. Réponses: 4
    Dernier message: 11/02/2008, 14h41
  4. [Dates] Comment obtenir le premier jour d'une semaine ?
    Par damien.vinouze dans le forum Langage
    Réponses: 8
    Dernier message: 09/05/2007, 08h26
  5. Calendar : Récupérer le premier jour de la semaine
    Par Sinan dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 07/05/2007, 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