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

Oracle Discussion :

to_char(ma_date) spécifier la langue


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Par défaut to_char(ma_date) spécifier la langue
    Bonjour,
    Lorsque je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select to_char(sysdate, 'dd-MON-YYYY hh24:mi:ss') as ma_date from dual
    J'obtiens :
    MA_DATE
    ---------------------------------------------------------------------------
    22-FEV-2005 18:26:39

    Or ce que je voudrais c'est
    22-FEB-2005 18:26:39
    C'est à dire février mais en anglais.
    J'ai vu dans l'aide sur To_char qu'il y a un troisième paramètre qui pourrais me permettre de définir que dans cette instruction là, il faut utiliser la langue anglaise.
    SYNTAX:

    TO_CHAR(d [, fmt [, 'nlsparams'] ])
    ...
    The 'nlsparams' specifies the language in which month and day names
    and abbreviations are returned. This argument can have this form:

    'NLS_DATE_LANGUAGE = language'
    Le problème c'est que je n'arrive pas à définir ce satané language.
    Lorsque je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SQL>  select to_char(sysdate, 'dd-MON-YYYY hh24:mi:ss',’NLS_DATE_LANGUAGE = American’) as ma_date from dual;
     select to_char(sysdate, 'dd-MON-YYYY hh24:mi:ss',’NLS_DATE_LANGUAGE = American’) as ma_date from du
                                                      *
    ERREUR à la ligne 1 :
    ORA-00911: Caractère invalide
    En revanche si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SQL> select to_char(sysdate, 'dd-MON-YYYY hh24:mi:ss','NLS_DATE_LANGUAGE = French')as ma_date from d
    ual;
     
    MA_DATE
    ---------------------------------------------------------------------------
    22-FEV-2005 18:31:57
    Je n'obtiens pas d'erreur.

    J'ai cherché en vain des exemples avec spécification de la langue et je n'ai pas trouvé.
    Pouvez-vous m'aider à spécifier ce damné format de langue.
    Ps: L'idée est de trouvé le to_date idéal pour simuler le format de date natif de VMS qui est JJ-MMM-AAAA HH:MI:SS.CC.
    où CC est les centieme de seconde, et MMM prend la valeur JAN, FEB, MAR, APR, MAY, JUn, JUL, AUG, SEP,OCT, NOV,DEC.
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SQL> select sysdate from tabu;
     
     22-FEB-2005 18:33:34.31
    1 row selected
    Merci.
    Soazig

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 75
    Par défaut
    C'est normal que dans tes codes tu utilise d'un coté le caractère ' et de l'autre celui ci ´ ???

    je ne dis pas que ca vient de la parce que tu as pe les memes dans tes vrais ocdes mais bon parfois les solutions les plus flagrantes sotn celles qui se voient le moins...

  3. #3
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SQL> select to_char(sysdate, 'dd-MON-YYYY hh24:mi:ss','NLS_DATE_LANGUAGE = French') as ma_date from dual;
     
    MA_DATE
    --------------------
    23-FEV-2005 07:46:35
     
    SQL> select to_char(sysdate, 'dd-MON-YYYY hh24:mi:ss','NLS_DATE_LANGUAGE = English') as ma_date from dual;
     
     
    MA_DATE
    --------------------
    23-FEB-2005 07:46:43

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Par défaut
    Merci Aeternus, c'était bien un problème de quote.
    J'avais fait un copier coller d'un document, et dans ce document les quotes devait être transformée pour faire beau?

    Je crois que sans toi je ne l'aurais pas vu.
    Merci aussi à toi orafrance, mais si Aeternus ne m'avais pas montré qu'il y avait un problème de ' j'aurais cru à une intervention magique de ta part


    Question subsidiaire, y a t-il un moyen d'avoir les centieme de secondes.
    Mais bon pour l'instant je fais sans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     select to_char(sysdate, 'dd-MON-YYYY hh24:mi:ss','NLS_DATE_LANGUAGE = American') || '.00' as ma_date from dual
    Soazig

  5. #5
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Par défaut
    Si tu es en 9i, tu peux utiliser SYSTIMESTAMP et FF pour avoir les centièmes de secondes (à tester, je n'ai pas de 9i sous la main...)


    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Par défaut
    Désolé, je ne suis pas en 9i, mais je pense que je vais me contenter des secondes.
    [Edit]Version d'oracle renvoyée par v$version
    Oracle7 Server Release 7.3.4.0.0 - Production
    [/Edit]
    Merci à tous

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 487
    Par défaut
    oui, tu as raison Laly,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SQL>  select to_char(systimestamp , 'dd-MON-YYYY hh24:mi:ss.ff','NLS_DATE_LANGUAGE = American')  as ma_date from dual;
     
    MA_DATE
    ------------------------------
    23-FEB-2005 08:50:20.657351
     
    SQL>  select to_char(systimestamp , 'dd-MON-YYYY hh24:mi:ss.ff9','NLS_DATE_LANGUAGE = American')  as ma_date from dual;
     
    MA_DATE
    ------------------------------
    23-FEB-2005 08:50:33.278432000

  8. #8
    Membre confirmé Avatar de jack554
    Inscrit en
    Février 2003
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 194
    Par défaut
    Bonjour

    Pour compléter ce post, le format MON en 10g ne semble plus donner les 3 premières lettres du mois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    SQL> select to_char(sysdate,'dd-mon-yyyy') from dual;
     
    TO_CHAR(SYSDA
    -------------
    03-mars -2006
     
    SQL> select banner from v$version;
     
    BANNER
    ----------------------------------------------------------------
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
    PL/SQL Release 10.2.0.1.0 - Production
    CORE    10.2.0.1.0      Production
    TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    Et je ne sais pas comment faire pour obtenir : 03-MAR-2006 comme en V9 et précédentes ...
    :

  9. #9
    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
    Par défaut
    Citation Envoyé par jack554
    Bonjour

    Pour compléter ce post, le format MON en 10g ne semble plus donner les 3 premières lettres du mois :
    ouais, pas très sympa de changer ce genre de valeur d'une release à l'autre...

  10. #10
    Membre émérite Avatar de plabrevo
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    Le monde evolue et les conventions utilisees avec lui. Le seul moyen, hors cas urgent et particulier, de vehiculer et de proceder a ces changements (changement de devise, format, calendrier, etc, pour tel ou tel language ou territoire, pour des raisons administrative, legales ou autres) sont justement l'introduction des nouvelles releases.

    Les changements NLS sous 10g sont documentes dans ?/nls/data/old/readme.txt.

    Il est possible de revenir a un comportement pre-10g en utilisant certains scripts documentes dans ce readme.

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

Discussions similaires

  1. [Strategie]gestions de differentes langues
    Par merlin_le_chanteur dans le forum Struts 1
    Réponses: 15
    Dernier message: 09/04/2004, 15h45
  2. [Système] Connaître la langue et le pays de l'OS
    Par seb-16000 dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 10/11/2003, 11h05
  3. fonction MessageDlg Delphi :changer la langue
    Par julie20 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 06/06/2003, 17h44
  4. [POSTGRESQL et JDBC] la langue de moliere
    Par jah dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 15/05/2003, 11h21
  5. Changement de langue dynamique (D6 et outils de traduction)
    Par agon dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/09/2002, 16h15

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