2012-10-28 15 views
12

voglio inserire la data e l'ora correnti in un colonne definite come tipo datetime.Come inserire la data corrente nel DB MySQL utilizzando Java

ho digitato il seguente codice:

java.sql.Date sqlDate = new java.sql.Date(new java.util.Date().getTime()); 
PrepStmt.setDate(1, sqlDate); 

Quando controllo il database, trovo che la data inserita correttamente, ma il tempo è: 00:00:00. Qual è la correzione?

+1

Qual è il tipo di dati della colonna nel vostro database MySQL? – doublesharp

+1

@doublesharp. Ha scritto lì. Il suo datetime. –

risposta

18

Dal momento che si sta utilizzando datetime come tipo di colonna, è necessario utilizzare java.sql.Timestamp per memorizzare la data, e PrepareStatement.setTimestamp per inserirlo.

Prova ad usare questo: -

java.sql.Timestamp date = new java.sql.Timestamp(new java.util.Date().getTime()); 
PrepStmt.setTimestamp(1, date); 
2

Quello che è necessario utilizzare è il metodo anziché il metodo setDate() setTimestamp(int parameterIndex,Timestamp x).

Uno dei modi in cui è possibile impostare il timestamp potrebbe essere il seguente:

Timestamp timestamp = new Timestamp(new Date().getTime()); 

è possibile impostare il parametro come:

PrepStmt.setTimestamp(1, timestamp); 
2

Sembra che avete bisogno

java.sql.Timestamp 

quello che vostro usando java.sql.Date è per trattare con solo date e non registra il tempo. In alternativa è possibile utilizzare java.sql.Time se si vuole solo il tempo.

2

Prova con setTimestamp come

PrepStmt.setTimestamp(1, sqlDate); 
1
java.sql.Timestamp date = new java.sql.Timestamp(new java.util.Date().getTime()); 
PrepStmt.setTimestamp(1, date); 

ho risolto utilizzando questo ..

Problemi correlati