Datum mit Uhrzeit in DB

Marquez2011

Neues Mitglied
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]
 
Zuletzt bearbeitet von einem Moderator:
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
 
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:
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
 
Zuletzt bearbeitet von einem Moderator:
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.

To conform with the definition of SQL DATE, the millisecond values wrapped by a java.sql.Date instance must be 'normalized' by setting the hours, minutes, seconds, and milliseconds to zero in the particular time zone with which the instance is associated.
es gibt noch mehr Klassen in java.sql, alle anschauen
 
Zuletzt bearbeitet von einem Moderator:
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
 
Zuletzt bearbeitet:

Zurück
Oben