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 :

Champ date


Sujet :

Oracle

  1. #1
    Membre averti
    Inscrit en
    Mars 2003
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 25
    Par défaut Champ date
    je suis débutante dans oracle priere de m'aider svp
    j'ai une requete du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select *
     from actualite
     where date_act  between '10/10/2004' and '10/12/2004'
    quand je l'xecute au niveau de oracle elle passe sans probleme mais quand je la mat dans une servlet ca me genere l'erreur suivante:

    java.sql.SQLException: ORA-01830: données surnuméraires après la conversion correcte d'une chaîne en entrée

    le champ date_act est de type date

  2. #2
    Membre émérite Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Par défaut
    Salut,
    Il est probable que le Servlet en question soit prévu pour recevoir un autre format de date...

    Quoi qu'il en soit s'il est un bonne habitude à prendre, c'est de toujours utiliser une format de date natif, c'est à dire (pour Oracle) en le spécifiant avec la fonction to_date, jamais de conversion implicite.

    du coup, ton code devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select * 
     from actualite 
     where date_act  between to_date('10/10/2004','dd/mm/yyyy') and to_date('10/12/2004','dd/mm/yyyy')

  3. #3
    Membre averti
    Inscrit en
    Mars 2003
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 25
    Par défaut
    est ce que TO_CHAR(date_ac,'DD/MM/YYYY') fait aussi l'affaire ou il vaut mieux garder le type date?

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 286
    Par défaut
    Citation Envoyé par L_latifa
    est ce que TO_CHAR(date_ac,'DD/MM/YYYY') fait aussi l'affaire ou il vaut mieux garder le type date?
    Non c'est pire ;-)

    Oracle va comparer 3 chaines de caractères ( le to_char et les deux elements du between), et le résultat est rarement celui escompté ..

    Pour Oracle, comparer '10/10/2004' a '11/10/2004' c'est comme comparer 'A768HUJUY' à 'OLKBGFGTFCCV' ..

  5. #5
    Membre averti
    Inscrit en
    Mars 2003
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 25
    Par défaut
    merci pour vos reponses

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

Discussions similaires

  1. formater un champ date dans un select
    Par sbeu dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 24/04/2006, 16h44
  2. Champ Date à '01/01/0001' -> Pb conversion de variant !!!
    Par AnnSo dans le forum Bases de données
    Réponses: 6
    Dernier message: 04/06/2004, 16h54
  3. récuperer année d'un champ date
    Par tomm dans le forum Bases de données
    Réponses: 11
    Dernier message: 12/05/2004, 16h24
  4. [CR] Problème de sélection sur un champ date
    Par noluc dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 21/11/2003, 16h56
  5. procedure stockée champ date
    Par tripper.dim dans le forum SQL
    Réponses: 5
    Dernier message: 25/04/2003, 09h47

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