comment insérer la valeur null dans une colonne datetime de sql avec java
Personne ne sait comment définir une valeur null dans une colonne datetime dans une base de données dans sql? J'ai essayé de réglage de la Chaîne de valeur null: String date = null;
mais je reçois ce message d'erreur:
java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]Conversion failed when converting datetime from character string
.
Aussi j'ai essayé la configuration de mon string ou pas de valeur par le simple fait de déclarer qu'il (Chaîne de caractères date;). cependant, ce serait juste en fin de réglage de la date que le 1er janvier 1900.
J'ai utilisé 3 zones de liste déroulante pour l'utilisateur du programme afin de choisir le jour, le mois et l'année de chaque.
DateNew newdateprocessed;
int b, c;
String d;
//First I took the values from each drop down box.
b = Date_Processed_Month_Mod.getSelectedIndex();
c = Date_Processed_Day_Mod.getSelectedIndex();
d = Date_Processed_Year_Mod.getSelectedItem().toString();
newdateprocessed = new DateNew(b, c, d);
//Then I used these values in a separate function to put them all together as just one string
public class DateNew extends Object {
String newdate;
String monthword, newdateword;
int check=0;
public DateNew (int month, int day, String year) {
//newdate = ""+ month + "/" + day + "/" + year;
if (month == 0 | day == 0 | year.equals("Year")) {
newdate=null;
check = 1;
}
else {
switch (month) {
case 1:
monthword="January";
break;
case 2:
monthword="February";
break;
case 3:
monthword="March";
break;
case 4:
monthword="April";
break;
case 5:
monthword="May";
break;
case 6:
monthword="June";
break;
case 7:
monthword="July";
break;
case 8:
monthword="August";
break;
case 9:
monthword="September";
break;
case 10:
monthword="October";
break;
case 11:
monthword="November";
break;
case 12:
monthword="December";
break;
}
newdateword= monthword + " " + day + ", " + year;
newdate = ""+ month + "/" + day + "/" + year;
}
check=month;
}
public String newdate() {
return newdate;
}
public int newdatecheck(){
return check;
}
public String newdateword(){
return newdateword;
}
Enfin, je donnerais newdateprocessed.newdate() de la colonne dans ma base de données. Il serait bien fonctionner si l'utilisateur de choisir une date, mais si ils n'ont pas choisi une date que je voudrais obtenir une erreur, c'est pourquoi j'essaie de trouver un moyen d'être en mesure de mettre une valeur null.
oui, j'ai mis de la colonne pour autoriser les valeurs null
OriginalL'auteur meebee | 2012-01-19
Vous devez vous connecter pour publier un commentaire.
Essayer d'appeler
Par exemple
OriginalL'auteur narek.gevorgyan
Pourquoi une chaîne de caractères? Si c'est une colonne datetime, vous pourriez essayer:
Vous semblent être en train de passer une chaîne de caractères de votre code d'accès aux données, qui sont stockées dans une colonne datetime, de sorte que vous êtes en s'appuyant sur le SGBD pour interpréter la chaîne de valeur et de le convertir en datetime. Il n'y a aucune manière de gérer la valeur null, alors vous allez avoir à changer la façon dont vous faites cela fait passer d'un type de données compatible comme une instance de Date.
J'ai développé ma réponse.
merci, je vais essayer d'étudier l'utilisation de la Date que je ne l'ai jamais utilisé.
Ce n'est pas strictement une réponse, qui aurait dû être un commentaire sur la question d'origine.
OriginalL'auteur David M
Essayez d'utiliser le setDate (et en passant null) au lieu de la setString méthode.
C'est bon à savoir. Merci Stephen.
ouais! thats it! merci!
OriginalL'auteur Jon Strayer
j'ai compris de quoi faire. la requête que j'ai utilisé pour la mise à jour de ma base de données a été à l'origine de cette:
j'ai pris les guillemets dans la requête et a changé la requête:
et dans mon code pour le réglage de la valeur de newdate dans mon DateNew fonction, si elle est nulle je l'ai mis à être:
et si ce n'était pas moi, il faut:
OriginalL'auteur meebee