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 :

Numéro de semaine - Déterminer le 1er jour de la semaine


Sujet :

SQL Oracle

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Août 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Numéro de semaine - Déterminer le 1er jour de la semaine
    Bonjour à tous,

    Travaillant pour une société américaine, je me dois d'utiliser les formats de date américain.
    Je travaille beaucoup avec les numéros de semaine et pour l'année 2009 j'ai quelques soucis.

    J'utilise la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select to_char(to_date('01.01.2010', 'dd.mm.yyyy') , 'IW', 'NLS_DATE_LANGUAGE = AMERICAN')
    from dual
    et le résultat me donne 53. (norme ISO)
    C'est parfait en Europe car la semaine commence le lundi. Aux USA par contre le résultat devrait être 1, car le premier jour de la semaine est le dimanche.

    Comment puis-je changer le 1er jour de la semaine?

    Voici ce que j'ai dans mes options NLS_LANGUAGE :

    NLS_LANGUAGE AMERICAN
    NLS_TERRITORY AMERICA
    NLS_CURRENCY $
    NLS_ISO_CURRENCY AMERICA
    NLS_NUMERIC_CHARACTERS .,
    NLS_CHARACTERSET WE8MSWIN1252
    NLS_CALENDAR GREGORIAN
    NLS_DATE_FORMAT DD-MON-RR
    NLS_DATE_LANGUAGE AMERICAN
    NLS_SORT BINARY
    NLS_TIME_FORMAT HH.MI.SSXFF AM
    NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
    NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
    NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
    NLS_DUAL_CURRENCY $
    NLS_COMP BINARY
    NLS_LENGTH_SEMANTICS BYTE
    NLS_NCHAR_CONV_EXCP FALSE
    NLS_NCHAR_CHARACTERSET AL16UTF16
    NLS_RDBMS_VERSION 10.2.0.1.0
    Est-ce que quelqu'un pourrait m'éclairer.

    Merci!

  2. #2
    Membre averti Avatar de xdescamp
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 300
    Points : 442
    Points
    442
    Par défaut
    Bonjour,

    Selon la norme ISO, la semaine commence le lundi: http://fr.wikipedia.org/wiki/Num%C3%...O_des_semaines.
    Il est donc normal que du 01 au 03 janvier 2010 le numéro de semaine soit 53 et que le premier jour de la semaine 01 soit le 04 janvier.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Août 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Selon la norme ISO, c'est tout à fait correct effectivement... Malheureusement la norme ISO n'est pas utilisée partout... La semaine commence un dimanche aux USA... et c'est bien là le problème... Aux USA, il y a une semaine 53 en 2011... pas en 2009

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 950
    Points : 5 849
    Points
    5 849
    Par défaut
    Le I de IW veut dire iso il me semble, il faut utiliser WW

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    WW commence le 1er jour de l'année et terminent le dernier jour de l'année.
    Les semaines WW ne font pas forcément sept jours.

    Il suffit peut-être de retirer un jour à vos dates pour caler vos semaines sur le dimanche, à essayer.

  6. #6
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 950
    Points : 5 849
    Points
    5 849
    Par défaut
    oups j'avais oublié , mais bon tu t'en es déjà rendu compte (due to your post on OTN )
    Sinon j'aurais cru que oracle + semaine au standard américain serait plus direct mais apparemment non.

    Bon au vu des réponse sur OTN , je pense (sans avoir testé) que l'idée de Waldar est à creusé, tiens nous au courant de ta solution.

Discussions similaires

  1. Réponses: 8
    Dernier message: 19/10/2011, 19h03
  2. [requete] Affiche le 1er jour de la semaine
    Par atlantideD dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 13/08/2007, 15h29
  3. Réponses: 2
    Dernier message: 26/01/2006, 13h14
  4. Déterminer le jour de la semaine
    Par SLE dans le forum SQL
    Réponses: 5
    Dernier message: 16/08/2005, 08h38
  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