2012-10-28 13 views
12

Chcę wstawić bieżącą datę i godzinę do kolumn zdefiniowanych jako typ datetime.Jak wstawić bieżącą datę do mysql db przy użyciu java

Wpisałem następujący kod:

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

Kiedy sprawdzić bazę danych, uważam, że data włożona prawidłowo, ale nadszedł czas: 00:00:00. Jaka jest poprawka?

+1

Jaki jest typ danych kolumny w bazie danych MySQL? – doublesharp

+1

@douwyknij. On tam napisał. Jego datetime. –

Odpowiedz

18

Ponieważ używasz datetime jako typ kolumny, trzeba użyć java.sql.Timestamp zapisać datę i PrepareStatement.setTimestamp aby go wstawić.

Spróbuj użyć tego: -

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

Należy użyć metody setTimestamp(int parameterIndex,Timestamp x) zamiast metody setDate().

Jednym ze sposobów można ustawić datownik będzie w następujący sposób:

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

Następnie można ustawić parametr jako:

PrepStmt.setTimestamp(1, timestamp); 
2

Brzmi jak trzeba

java.sql.Timestamp 

Ten, który używasz java.sql.Date do obsługi tylko dat i nie rejestruje czasu. Alternatywnie możesz użyć java.sql.Time, jeśli chcesz tylko czas.

2

Spróbuj z setTimestamp jak

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

I rozwiązać go za pomocą tego ..

Powiązane problemy