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

Servlets/JSP Java Discussion :

(jsp) problème avec sql qui contient la date


Sujet :

Servlets/JSP Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 12
    Points : 6
    Points
    6
    Par défaut (jsp) problème avec sql qui contient la date
    bonjour à tous
    j'ai 2 page jsp la première est la suivante:
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    <form name="form1" method="post" action="test2.jsp">
      <select name="jour" size="1" id="jour" >
          <option value="" >Jour</option>
          <option value="1" >01</option>
          <option value="2" >02</option>
          <option value="3" >03</option>
          <option value="4" >04</option>
          <option value="5" >05</option>
          <option value="6" >06</option>
          <option value="7" >07</option>
          <option value="8" >08</option>
          <option value="9" >09</option>
          <option value="10" >10</option>
          <option value="11" >11</option>
          <option value="12" >12</option>
          <option value="13" >13</option>
          <option value="14" >14</option>
          <option value="15" >15</option>
          <option value="16" >16</option>
          <option value="17" >17</option>
          <option value="18" >18</option>
          <option value="19" >19</option>
          <option value="20" >20</option>
          <option value="21" >21</option>
          <option value="22" >22</option>
          <option value="23" >23</option>
          <option value="24" >24</option>
          <option value="25" >25</option>
          <option value="26" >26</option>
          <option value="27" >27</option>
          <option value="28" >28</option>
          <option value="29" >29</option>
          <option value="30" >30</option>
          <option value="31">31</option>
      </select>
          <select name="mois"  id="mois" >
            <option value="" selected>Mois</option>
            <option value="01" >01</option>
            <option value="02">02</option>
            <option value="03" >03</option>
            <option value="04" >04</option>
            <option value="05" >05</option>
            <option value="06" >06</option>
            <option value="07" >07</option>
            <option value="08" >08</option>
            <option value="09" >09</option>
            <option value="10" >10</option>
            <option value="11" >11</option>
            <option value="12" >12</option>
          </select>
          <input name="annee"  id="annee" type="text" size="4" maxlength="4" >
          <input type="submit" name="Submit" value="Envoyer">
    </form>
    la 2eme page fait la recherche selon se que j'ai saisie
    mais le problème que cette requette n'accepte pas la date sur 4 position mais sur 2 c'est tous (sachant que la date rechercher c'est la date système)
    voici ma requette:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "SELECT D.NUMDOS FROM  DOSSIER D WHERE  D.DATEDEPOT like '"+ request.getParameter("jour")+"/"+request.getParameter("mois")+"/"+request.getParameter("annee") +"' "
    merci d'avance

  2. #2
    Membre régulier Avatar de fedfil
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 91
    Points : 93
    Points
    93
    Par défaut
    salut,

    attention à ne pas confondre date et chaine de caractère !!
    Par exemple sous Oracle, des fonctions te permettent de filtrer l'année, le jour et le mois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT D.NUMDOS FROM  DOSSIER D WHERE  YEAR(D.DATEDEPOT)=" + request.getParameter("annee") + " AND MONTH(D.DATEDEPOT)=" + request.getParameter("mois") + "AND DAY(D.DATEDEPOT)=" + request.getParameter("jour")
    ++

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    merci pour votre réponse
    mais toujour la même chôse il n'affiche rien; j'ai oublie de vous dire que se travail sur ORACLE

  4. #4
    Membre confirmé

    Inscrit en
    Juillet 2002
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 116
    Points : 514
    Points
    514
    Par défaut
    Est ce que l'execution de ta requête provoque une exception ?

    Ecris ta requête dans les logs (System.out.println) avant de l'executer pour voir si la requête est bien constitué, puis fait un copier/coller de cette requête imprimée et execute la dans un prompt d'oracle pour vérifier si la requête ne provoque pas d'erreur SQL et s'il y a bien un résultat à cette requête ...

  5. #5
    Futur Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    l'executiotion ne génere aucune exception, il n'affiche rien

    le probleme quand je tape par exemple '30/08/2005' sa ne marche pas , et quand je mis '30/08/05' sa marche et moi je veux année sur 4 position

  6. #6
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Quel est le type de ton champ 'D.DATEDEPOT'?

    Si un champ date pourquoi cherches-tu avec un LIKE?
    C'est une mauvaise habitude de convertir une date en un string.

  7. #7
    Membre expérimenté

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Points : 1 660
    Points
    1 660
    Par défaut
    Moi je serais d'avis d'utiliser la query suivante.

    Je l'ai testée sur une de mes tables et elle fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    PreparedStatement pstmt = connection.prepareStatement("SELECT D.NUMDOS FROM  DOSSIER D WHERE to_char( D.DATEDEPOT, 'DD/MM/YYYY')  = ? ");
    pstmt.setString(request.getParameter("jour")+"/"+request.getParameter("mois")+"/"+request.getParameter("annee"));
    ResultSet rs = pstmt.executeQuery();
    . . .
    . . .
    . . .
    Voilà
    Bonne chance

  8. #8
    Futur Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Merci pour vous réponse j'ai trouvé la solution suivante et elle fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "SELECT D.NUMDOS FROM  DOSSIER D WHERE  D.DATEDEPOT like to_date('"+ request.getParameter("jour")+"/"+request.getParameter("mois")+"/"+request.getParameter("annee") +"','dd/mm/yyyy' "
    Merci et boncourage à tous

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

Discussions similaires

  1. [SQL Server 05] Problème avec le format de la date
    Par Monkey_D.Luffy dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 22/05/2008, 09h02
  2. [JSP] Problème avec forward et param
    Par seb55555 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 13/12/2004, 12h13
  3. [struts][jsp] problème avec request.getParameter
    Par stago dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 01/07/2004, 23h52
  4. [tomcat] [jsp] Problème avec driver OCI pour oracle
    Par nanardcompanie dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 01/07/2004, 09h54
  5. [jsp]problème avec request.getParameter(...)!
    Par fadoua dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 01/09/2003, 13h26

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