12
votes

Comment insérer la date et l'heure actuelles dans une base de données à l'aide de SQL?

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);


1 commentaires

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 ()


8 Réponses :


0
votes

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.


0 commentaires

12
votes

Essayez d'utiliser SETTIMESTAMESTAM au lieu de SETDATE , puisqu'un horodatage est le format préféré pour les données et temps.


1 commentaires

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. "



2
votes

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())"');");


0 commentaires

1
votes

Utilisez la fonction SQL maintenant ().

INSERT INTO table date_field VALUES(NOW());


0 commentaires

-2
votes

En réalité, la date de la base de données est une chaîne comme "yyyy-mm-dd".

Pourquoi ne pas essayer:

Date de chaîne = "2010-07-28";

stmt.executeUpdate ("Insérer dans la myTable (heure) + s);

C'est juste pour la date que vous voulez.

Si vous voulez insérer maintenant, utilisez la commande comme:

Insérer dans la myTable (maintenant ());


0 commentaires

5
votes

Vous pouvez définir horodatage Importer Java.SQL.TMESTAMP;

stmt.setDate(1, date);


0 commentaires

0
votes

J'ai fait comme suit: xxx

J'espère que vous servez


0 commentaires

2
votes

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: xxx


0 commentaires