# Datum mit Uhrzeit in DB



## Marquez2011 (22. Mrz 2011)

Hallo zusammen,

Ich habe folgendes Problem:

Ich möchte mit meinem Programm ein Datum + Uhrzeit in eine Datenbank einfügen.

Dabei tritt folgendes Problem auf. Java speichert mir nur das Datum richtig in die Datenbank die Uhrzeit ist immer 00:00:00.

Hier ist der dazugehörige Code:

[Java=42]
import java.sql.*;
import java.util.Date;
import java.text.*;




public class DBVerbindung {

  public static void main(String[] args)
      throws ClassNotFoundException, SQLException, ParseException


  {
	      Statement  st = null;
	      ResultSet  rs = null;
	      PreparedStatement preparedStatement = null;


	      String a = "2005-12-03"+" 11:11:00";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	      Date today = df.parse(a);
[/code]


----------



## SlaterB (22. Mrz 2011)

bisschen wenig Code und wenig Infos, oder?
vielleicht ist in der Datenbank der Typ begrenzt (DATE statt TIME), 
vielleicht machst du bei der Übergabe an das  PreparedStatement noch irgendwas

today wird jedenfalls die Zeit noch enthalten, kannst du dir im Programm anschauen,
mit dem Übergang String -> Date hat es also garantiert nichts zu tun, Titel geändert


----------



## Marquez2011 (22. Mrz 2011)

Hallo zusammen,

Ich habe folgendes Problem:

Ich möchte mit meinem Programm ein Datum + Uhrzeit in eine Datenbank einfügen.

Dabei tritt folgendes Problem auf. Java speichert mir nur das Datum richtig in die Datenbank die Uhrzeit ist immer 00:00:00.

Hier ist der dazugehörige Code:


```
import java.sql.*;
import java.util.Date;
import java.text.*;




public class DBVerbindung {

  public static void main(String[] args)
      throws ClassNotFoundException, SQLException, ParseException
      

  {
	      Statement  st = null;
	      ResultSet  rs = null;
	      PreparedStatement preparedStatement = null;
	    
	      
	      String a = "2005-12-03"+" 11:11:00";
                   DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                   Date b = df.parse(a);

                  Class.forName( "oracle.jdbc.driver.OracleDriver" );
	    Connection cn = DriverManager.getConnection( "jdbc:oracle:thin:@V60dbsv2                  :*:*", "*", "*" );

	  
	  String insert = ("Insert Into Tabellet(Datum)Values(?)");

	   preparedStatement = cn.prepareStatement(insert);
                preparedStatement.setDate(1,new java.sql.Date(b.getTime()));
                preparedStatement.executeUpdate(); 
}
```
Vielen Dank für die Hilfe im Voraus


----------



## SlaterB (22. Mrz 2011)

zweites Thema hierher kopiert, bitte an korrekte Java-Tags denken!

edit:
Date (Java Platform SE 6)


> public class Date
> extends Date
> 
> A thin wrapper around a millisecond value that allows JDBC to identify this as an SQL DATE value. A milliseconds value represents the number of milliseconds that have passed since January 1, 1970 00:00:00.000 GMT.
> ...


es gibt noch mehr Klassen in java.sql, alle anschauen


----------



## Javacode (23. Mrz 2011)

Du musst mit dem PreparedStatement ein TIMESTAMP setzen.

Methode für den Timestamp:
public static Timestamp getTimestamp(){
	Timestamp ts= new Timestamp(System.currentTimeMillis());
	return ts;
}

timestamp= getTimestamp();

ps.setTimeStamp(timestamp). 


Dannn bekommste das aktuelle Datum mit der genauen Uhrzeit

Grüße,
Javacode


----------

