# PrepareStatement + Datetime



## Guest (2. Jul 2007)

Hallo,

ich habe hier eine Datenbank, die ein Feld Datetime hat.
Jetzt möchte ich dieses Feld mit dem aktuellen Datum und Uhrzeit füllen.

Ich benutze PrepareStatement.


Folgender Versuch schlug fehl:



```
Date date = new Date(0);
		String sql2="Insert into xmlinformation(filename,filepath,md5,geloescht,abgelegt,letzterzugriff) values (?,?,?,?,?,?)";
		stm=this.con.prepareStatement(sql2);
		stm.setString(1,file.getName());
		stm.setString(2,file.getAbsolutePath());
		stm.setString(3,md5);
		stm.setBoolean(4,false);
		stm.setDate(5,date);
		stm.setDate(6,date);
		stm.execute();
```

IN der Datenbank steht 1970-01-01 00:00:00.

WIe bekomme ich das aktuelle Daten herein?

Gruß

Markus


----------



## SlaterB (2. Jul 2007)

new Date(0); 
ist 1970

new Date(); 
ist heute,

gibt aber vielleicht auch passende SQL-Funktionen, um die DB das selber machen zu lassen


----------



## Guest (2. Jul 2007)

SlaterB hat gesagt.:
			
		

> new Date(0);
> ist 1970
> 
> new Date();
> ...



new Date(); geht leider nicht. Der bietet mir nur an new Date(0); oder new Date(int,int,int);

Das ist mein Problem.

Wie kann ich es denn am besten realisieren.


----------



## SlaterB (2. Jul 2007)

new Date(System.currentTimeMillis());


----------



## Guest (2. Jul 2007)

SlaterB hat gesagt.:
			
		

> new Date(System.currentTimeMillis());



Danke, das Datum stimmt, nur leider wird die Uhrzeit nicht mitgespeichert.
Die Uhrzeit ist immer noch 00:00:00


----------



## SlaterB (2. Jul 2007)

ein Date ist eben manchmal wirklich nur ein Date, 
setTime gibts auch in PreparedStatement

http://java.sun.com/javase/6/docs/api/java/sql/PreparedStatement.html
bisschen selber denken..

und ein Beispiel kann ich da dir nicht nennen, da selber nie gemacht


----------



## DP (2. Jul 2007)

sonst machste halt 


```
setString(5, new Date(System.currentTimeMillis()));
```

geht auch


----------



## Tharsonius (1. Okt 2007)

Ganz nebenbei, wenn es sich um eine MySQL Datenbank handelt kann man einfach im Insert ein NOW() übergeben, dann nimmt die Datenbank die aktuelle Uhrzeit und das aktuelle Datum und fügt das an dieser Stelle ein.

Alternativ schluckt MySQL auch einen simplen String, solange das Format passt.


----------



## maki (1. Okt 2007)

> Danke, das Datum stimmt, nur leider wird die Uhrzeit nicht mitgespeichert.
> Die Uhrzeit ist immer noch 00:00:00


Welches Date verwendest du denn?

java.util.Date
oder
java.sql.Date


----------



## Guest (1. Okt 2007)

maki hat gesagt.:
			
		

> ...
> Welches Date verwendest du denn?
> 
> java.util.Date
> ...


er verwendet sicherlich java.sql.Date, util.Date geht bei JDBC nicht.

Verwende Timestamp, dann hast du auch den Zeitanteil.


----------

