2010-08-30 6 views
0

J'ai un champ textbox dans mon jsp appelé "req_date". L'utilisateur sélectionne une date à partir d'un calendrier javascript au format "DD-MON-YY" ex. "29-août-2010". Donc, maintenant je suis coincé en essayant de l'insérer dans la BD.Insérer champ Date dans DB

J'ai essayé "String queryString = "INSERT INTO Charity (req_date) VALUES (?)", Mais il n'est pas INSERTION DE. Comment puis-je résoudre tis dehors.

Le req_date est le type de date dans le DB.

Pouvez-vous s'il vous plaît aider

+0

Quelle base de données utilisez-vous? BTW, pourquoi utilisez-vous des appels JDBC directs et non un ORM? – Eldelshell

+0

Oracle et en utilisant JDBC – maas

Répondre

3

format de la date dépend de la base de données que vous utilisez Pour référence Date formats avec Oracle

de sorte que votre requête devrait ressembler à:..

String queryString = "INSERT INTO Charity (req_date) VALUES (to_date('29-aug-2010', 'dd-mon-yyyy'))" 

Ceci est juste pour répondre à votre question. Mais je vais préférer utiliser PreparedStatement comme suggéré dans d'autres réponses.

Votre code à l'aide PreparedStatement devrait ressembler à quelque chose comme ce qui suit: (NOTE: Je ne l'ai pas testé ce code)

String formatIn = "dd-MMM-yyyy"; 
    SimpleDateFormat sdfi = new SimpleDateFormat(formatIn); 
    java.util.Date inDate = sdfi.parse("29-Aug-2010"); 

    java.sql.Date sqlDate = new java.sql.Date(inDate.getTime()); 

    PreparedStatement prest = con 
      .prepareStatement("INSERT INTO Charity (req_date) VALUES (?)"); 
    prest.setDate(1, sqlDate); 
    int row = prest.executeUpdate(); 
+0

certainement pas .. le format est la responsabilité de la présentation. – Bozho

+0

Comment faire cela dans mon précédent article? – maas

+0

@maas J'ai mis à jour votre requête en utilisant la fonction oracle to_date(). – YoK

0

Cela dépend de votre base de données, PostgreSQL ne reconnaît ce format:

SELECT CAST('29-aug-2010' AS date); 

Résultat:

'2010-08-29' 

Dans la plupart des cas, vous devriez mieux utiliser le format ISO aaaa-mm-jj.

+0

Comment changer le format dans l'encart? – maas

+0

Dépend, vous pouvez utiliser TO_DATE() dans SQL comme YoK vous l'a montré ou le faire dans votre code Java. –

3

Utilisez un PreparedStatement et son setDate(..). Ou utilisez un horodatage (long).

+0

Simple un Bozho :) –

Questions connexes