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 :

Modification format date Oracle


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Points : 16
    Points
    16
    Par défaut Modification format date Oracle
    Bonjour à tous et merci par avance à ceux qui vont me lire,

    Lors d'un appel à un *.sql depuis un shell unix, je passe quelques paramètres. Certains de ces paramètres sont des dates.

    Je les récupère dans le *.sql sous forme &1, &2, ...

    Le problème c'est que &1 = '200701'

    Et j'aimerai transformer le format de cette date en dd/mm/yyyy afin de pouvoir la comparer avec le champ d'une table oracle.

    Ma question donc : comment passer ma variable &1 du format yyyy/mm à dd/mm/yyyy ?

    J'ai tenté to_date('&1','dd//mm/yyyy) mais cela ne fonctionne pas.

    Si quelqu'un a une idée , je suis preneur.
    Merci beaucoup.

  2. #2
    Membre confirmé Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Points : 565
    Points
    565
    Par défaut
    Citation Envoyé par tonio45312 Voir le message

    J'ai tenté to_date('&1','dd//mm/yyyy) mais cela ne fonctionne pas.
    Si tu l'as tenté avec cette syntaxe c'est normal.
    Deuxiemement tu lui dis de lire une date qui est au format "dd/mm/yyyy" ce qui n'est pas vrai ...

    Tu n'as juste qu'a faire :
    et là tu obtiendras un objet de type date.
    Le champ avec le lequel tu veux le comparer est de type date ? tu peux faire la comparaison avec ca !

    Si non, si c'est une chaine , récupere et formate ta chaine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    to_char(to_date('&1','yyyymm'),'dd/mm/yyyy')
    si bien sur ta chaine est au format (dd/mm/yyyy) [ce qui serait tres bete pour une une chaine ]

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 500
    Points : 639
    Points
    639
    Par défaut
    ta variable &1 contient 6 caractères sans slash, donc dans ton to_date, tu dois spécifier dans l'ordre à quoi correspondent ces 6 caractères (DD, MM ou YY car à priori ton année est sur 2 car.), et donc sans slash.
    Par exemple : DDMMYY signifie dans ton cas qu'il doit comprendre 20 juillet 2001, alors DDYYMM signifie 20 janvier 2007.

    Sinon, tu peux aussi envisager de faire un to_char sur la colonne à comparer de ta table Oracle, en respectant évidemment le format de ta variable &1

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    miloux32,

    Le champ avec lequel je veux comparer est en effet de type date dd/mm/yyyy !

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    La comparaison ne semble pas fonctionner.
    Lorsqu'il compare du 'yyyymm' avec du 'dd/mm/yyyy', cela va matcher même si l'information concernant le 'dd' est absente ??

  6. #6
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 8
    Points : 11
    Points
    11
    Par défaut
    to_date('&1','yyyymm') renvoie une date au 01/MM/YYYY
    La comparaison entre ce to_date et ton champ DATE doit en tenir compte.
    Si toutes tes DATE ne correspondent pas au premier jour du mois tu n'auras que trés peu de résultat.

    Quel est le format de &1 ?
    Quel test souhaite-tu faire entre &1 et tes champs DATE ?

Discussions similaires

  1. [Oracle] erreur insertion:Format date oracle
    Par jules_diedhiou dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 21/01/2013, 17h46
  2. Format date Oracle
    Par Nikamura dans le forum Hibernate
    Réponses: 4
    Dernier message: 05/06/2008, 11h27
  3. Format de l'heure d'une date [Oracle 10g]
    Par Dark Ryus dans le forum Oracle
    Réponses: 3
    Dernier message: 23/04/2007, 11h47
  4. Modification du format date de mes cellules excel
    Par largo9020 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/11/2006, 14h53
  5. Format Date dans Oracle :(
    Par uzumaki_naruto dans le forum Oracle
    Réponses: 3
    Dernier message: 25/08/2006, 15h45

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