2012-10-28 5 views
12

Ich möchte das aktuelle Datum und die Uhrzeit in eine Spalte einfügen, die als Datetime-Typ definiert ist.So fügen Sie das aktuelle Datum in mysql db mit Java ein

Ich tippte den folgenden Code:

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

Wenn ich die Datenbank überprüfen, finde ich, dass das Datum korrekt eingelegt, aber die Zeit ist: 00:00:00. Was ist das Problem?

+1

Was ist der Datentyp der Spalte in Ihrer MySQL-Datenbank? – doublesharp

+1

@doublesharp. Er hat dort geschrieben. Seine Datetime. –

Antwort

18

Da Sie datetime als Spaltentyp verwenden, müssen Sie java.sql.Timestamp speichern Sie das Datum verwenden, und PrepareStatement.setTimestamp es einzufügen.

Versuchen Sie dies mit: -

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

Was Sie verwenden müssen, ist die setTimestamp(int parameterIndex,Timestamp x) Methode anstelle der Methode setDate().

Eine der Möglichkeiten, wie Sie die Zeitmarke festlegen würde wie folgt aussehen:

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

Sie können dann die Parameter wie:

PrepStmt.setTimestamp(1, timestamp); 
2

Klingt wie Sie brauchen

java.sql.Timestamp 

Der, den Sie verwenden java.sql.Date ist nur für den Umgang mit Daten und nicht die Zeit aufzeichnen. Alternativ können Sie java.sql.Time verwenden, wenn Sie nur Zeit haben möchten.

2

Versuchen mit setTimestamp als

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

Ich löste es dies mit ..

Verwandte Themen