J'ai utilisé le code suivant, mais le champ DateTime dans SQL est représenté comme suit:
// Get the system date and time. java.util.Date utilDate = new Date(); // Convert it to java.sql.Date java.sql.Date date = new java.sql.Date(utilDate.getTime()); ... ... ... PreparedStatement stmt = connection.prepareStatement(sql); stmt.setDate(1, date);
8 Réponses :
Essayez d'utiliser SetDate (Utilation) au lieu d'essayer de définir la date SQL. En SQL, la date et l'heure sont des types de données différents. P>
Essayez d'utiliser
java.sql.date ne prend en charge que la date, pas l'heure. De la Javadoc - "à se conformer à la définition de la date SQL, les valeurs millisecond enveloppées par une instance Java.SQL.Date doivent être" normalisées "en définissant les heures, les minutes, les secondes et les millisecondes à zéro dans le fuseau horaire particulier avec que l'instance est associée. "
Essayez ceci:
Connection con;
Statement stmt;
con = DriverManager.getConnection(url, username, password);
stmt = con.createStatement();
stmt.executeUpdate("INSERT INTO MYTABLE(time) " +
"VALUES ('" + new java.sql.Date(System.CurrentTimeMillis())"');");
Utilisez la fonction SQL maintenant ().
INSERT INTO table date_field VALUES(NOW());
En réalité, la date de la base de données est une chaîne comme "yyyy-mm-dd".
p>
Pourquoi ne pas essayer:
p>
stmt.executeUpdate ("Insérer dans la myTable (heure) + s);
code> p>
C'est juste pour la date que vous voulez. p>
Si vous voulez insérer maintenant, utilisez la commande comme: p>
Insérer dans la myTable (maintenant ()); P>
Date de chaîne = "2010-07-28"; P>
Vous pouvez définir horodatage Importer Java.SQL.TMESTAMP;
stmt.setDate(1, date);
J'ai fait comme suit: J'espère que vous servez p> p> p>
Je ne me dérangerais pas de récupérer l'heure actuelle en Java, laissez simplement la base de données faire le travail:
Sur Microsoft SQL-Server, le moyen le plus simple d'insérer les dates de courant sur les datables consiste à ajouter une valeur par défaut au champ DateTime (ou SmallDateTime): GetDate ()