2010-07-28 7 views
11

habe ich den folgenden Code, aber das Feld Datetime in SQL dargestellt wird als:Wie fügt man aktuelles Datum und Uhrzeit in eine Datenbank mit SQL ein?

2005-04-08 00:00:00 

Ich will auch die Zeit haben. Was soll ich ändern?

Hier ist mein Code unten:

// Get the system date and time. 
java.util.Date utilDate = new Date(); 
// Convert it to java.sql.Date 
java.sql.Date date = new java.sql.Date(utilDate.getTime()); 
... 
... 
... 
PreparedStatement stmt = connection.prepareStatement(sql); 
stmt.setDate(1, date); 
+1

Auf Microsoft SQL-Server besteht die einfachste Möglichkeit, aktuelle Daten in Datenfelder einzufügen darin, dem Feld DateTime (oder SmallDateTime) ein Default Value-Feld hinzuzufügen: getdate() –

Antwort

11

Versuchen Sie es mit setTimestamp statt setDate, da ein Zeitstempel für die Daten und Zeit das gewünschte Format ist.

+3

java.sql.Date unterstützt nur die Daten e, nicht die Zeit. Aus dem Javadoc - "Um die Definition von SQL-DATE zu erfüllen, die Millisekunden-Werte von einer java.sql eingewickelt.Datumsinstanz muss "normalisiert" werden, indem die Stunden, Minuten, Sekunden und Millisekunden in der bestimmten Zeitzone, der die Instanz zugeordnet ist, auf Null gesetzt werden. " –

0

Versuchen setDate (utilDate) anstatt zu versuchen, SQL Datum einzustellen verwenden. In SQL sind Datum und Uhrzeit unterschiedliche Datentypen.

2

Try this:

Connection con; 
Statement stmt; 
con = DriverManager.getConnection(url, username, password); 
stmt = con.createStatement(); 
stmt.executeUpdate("INSERT INTO MYTABLE(time) " + 
"VALUES ('" + new java.sql.Date(System.CurrentTimeMillis())"');"); 
1

jetzt die SQL-Funktion verwenden().

INSERT INTO table date_field VALUES(NOW()); 
-1

Eigentlich ist das Datum in der Datenbank eine Zeichenfolge wie "JJJJ-MM-TT".

Warum nicht versuchen, zu:

String date = "2010-07-28";

stmt.executeUpdate("INSERT INTO MYTABLE(time) " + s);

Es ist nur für das Datum, die Sie wollen.

Wenn Sie einfügen wollen jetzt, verwenden Sie den Befehl wie:

INSERT INTO mytable (now());

4

Sie können Timestamp import java.sql.Timestamp;

stmt.setTimestamp(1, new Timestamp(System.currentTimeMillis())); 

statt

stmt.setDate(1, date); 

o/p wird: 2014.05.16 08: 34: 52,977

stellen Sie Ihre DB --column als Zeitmarke.

0

Ich habe wie folgt:

con = new BDConesion(); //Conexion with de DB 
Connection cn = con.conexion() 
PreparedStatement st = null; 
st = cn.prepareStatement("INSERT INTO TABLE (Id,Fecha,contendido) VALUES(?,?,?)"); 
st.setString(1,String.valueOf(key)); //convert the int to string 
st.setTimestamp(2, new Timestamp(System.currentTimeMillis())); 
st.setString(3,Cont);//Cont it is a varible string 
st.executeUpdate(); 

Ich hoffe, Sie dienen

1

Ich würde nicht die Mühe, um die aktuelle Zeit in Java abrufen, nur die Datenbank lassen die Arbeit machen:

String sql = "insert into some_table (some_column, timestamp_column) values (?, current_timestamp)"; 
PreparedStatement stmt = connection.prepareStatement(sql); 
stmt.setInt(1, 42); 
stmt.executeUpdate(); 
Verwandte Themen