Pour améliorer la standardisation du code, vous devez remplacer les variables SQL codées en dur par des instructions préparées et les lier. Cependant, vous rencontrez un problème lors de l'utilisation de la méthode setDate().
<code class="language-java">String vDateMDYSQL = vDateMDY; java.sql.Date date = new java.sql.Date(0000-00-00); ... prs.setDate(2, date.valueOf(vDateMDYSQL));</code>
Lors de l'exécution de l'instruction SQL, l'erreur suivante s'est produite :
<code>java.lang.IllegalArgumentException at java.sql.Date.valueOf(Date.java:138)</code>
Le problème est que la variable de date est incorrectement initialisée en utilisant 0000-00-00 comme valeur par défaut. Pour résoudre ce problème, envisagez les alternatives suivantes lorsque vous traitez des dates :
Pour les tables avec type de colonne DATE :
Utiliser la chaîne :
<code class="language-java"> ps.setDate(2, java.sql.Date.valueOf("2013-09-04"));</code>
Utilisez java.util.Date :
<code class="language-java"> ps.setDate(2, new java.sql.Date(endDate.getTime()));</code>
Obtenir la date actuelle :
<code class="language-java"> ps.setDate(2, new java.sql.Date(System.currentTimeMillis()));</code>
Pour les tables avec des types de colonnes TIMESTAMP ou DATETIME :
Utiliser la chaîne :
<code class="language-java"> ps.setTimestamp(2, java.sql.Timestamp.valueOf("2013-09-04 13:30:00"));</code>
Utilisez java.util.Date :
<code class="language-java"> ps.setTimestamp(2, new java.sql.Timestamp(endDate.getTime()));</code>
Obtenir l'horodatage actuel :
<code class="language-java"> ps.setTimestamp(2, new java.sql.Timestamp(System.currentTimeMillis()));</code>
Utilisez l'une des méthodes ci-dessus pour définir correctement la date dans la déclaration préparée, évitant ainsi l'erreur que vous avez rencontrée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!