Aktuelles Datum in MySQL speichern

Guten Morgen Leute 🙂
Habe bereits die IPv4 und den Loginnamen in die Datenbank geschrieben aber wie man das aktuelle Datum in die Datenbank hineinschreibt fällt mir nicht ein. :bloed:


Quellcode :
Java:
VerbindungMySQL mysql = new VerbindungMySQL();
        Connection cn = VerbindungMySQL.ConnectDb();
        String sql = "Select * from loginuser where Benutzername = ? and Passswort = ? ";
        try {
            String Datum,Dauer,name,ip;
            String sSQL = "";
            Datum = 
            Dauer = 
            name = txtuser.getText();
            ip = InetAddress.getLocalHost().getHostAddress();
            
            pst = Conn.prepareStatement(sql);
            pst.setString(1, txtuser.getText());
            pst.setString(2, txtpw.getText());
            rs = pst.executeQuery();
            if (rs.next()){
                    try {
                        sSQL = "INSERT INTO verlauf (Datum,Dauer,Loginname,IPv4) VALUES (?,?,?,?)";
                        
                        
                        PreparedStatement pst = cn.prepareStatement(sSQL);
                        pst.setString(1, Datum);
                        pst.setString(2, Dauer);
                        pst.setString(3, name);
                        pst.setString(4, ip);
                        int n = pst.executeUpdate()
 
Zuletzt bearbeitet:
Dazu gibt es die Funktion DATE(NOW()) in SQL.
Ist allerdings [STRIKE]englisches[/STRIKE] amerikanisches Format.

Müsstest du noch mit DATEFORMAT umbauen, wenn du deutsches Format haben willst.
 
Zuletzt bearbeitet:
Hallo Gegoo,
danke erstmal für den Vorschlag 🙂
ich bin gerade ein bisschen verwirrt und verstehe dein Vorschlag nicht. Wie lautet denn der Befehl in Java für das aktuelle Datum ?
Datumsformat = Englisch
Java:
 String Datum,Dauer,name,ip;
            String sSQL = "";
            Datum = ??????
            Dauer = 
            name = txtuser.getText();
            ip = InetAddress.getLocalHost().getHostAddress();

LG,
Movementroboter
 
Um das aktuelle Datum in Java zu bekommen, am besten mal in die Klasse hier schauen: [JAPI]GregorianCalendar[/JAPI]
 
Zuletzt bearbeitet:
Wenn du ein Datum abspeichern willst, wieso nimmst du dann einen String? Ist das Feld in der Datenbank ein varchar-Feld o.Ä.?

Bei einem Timestamp- oder Datumsfeld speichere doch einfach direkt das aktuelle Datum. Was ist da das Problem?

Java:
java.util.Date now = new java.util.Date();

preparedStatement.setTimestamp(1, new java.sql.Timestamp(now.getTime()) );

Wenn du aber wirklich einen String speichern willst oder musst, dann kannst du
Code:
now
mit Hilfe von
Code:
SimpleDateFormat
auf die von dir gewünschte String-Darstellung bringen.
 
Hallo Leute
irgendwie bin ich gerade vollkommen durcheinander
habe es mal mit GregorianCalendar versucht

Java:
Calendar kal = new GregorianCalendar();                        
        kal1.setTime( new Date() );
        int year = kal1.get( Calendar.YEAR  );
        int mnth = kal1.get( Calendar.MONTH ) +1 ;           
        int date = kal1.get( Calendar.DATE  );
        System.out.println(year+"-"+mnth+"-"+date);

wie speicher ich nun das Datum hier ab ?
Java:
String Datum,Dauer,name,ip;
            String sSQL = "";
            Datum = ??????
            Dauer = 
            name = txtuser.getText();
            ip = InetAddress.getLocalHost().getHostAddress();
 
ich poste das mal in diesen Thread da wir gerade dabei sind Datensätze in die DB einzutragen
Wie kann man die Laufzeit eines Programms in einen String schreiben und die Laufzeit in eine MySQL Datenbank schreiben ?
 
Aus einem Datum eine Kalendar-Instanz zu erzeugen, diese dann in einzelne "Datums-Bausteine" zu zerlegen, dann integer-Werte als String interpretieren um dann daraus wieder einen String zusammenzusetzen, der wieder dem Datum vom Anfang entsprechen soll ... das ist doch einfach quatsch. Ein Kalendar ist interessant, wenn du mit Daten "rechnen" willst.

Das aktuelle Datum bekommst du über
Code:
new java.util.Date()
.
Code:
SimpleDateFormat
ist die Klasse, die du nutzen solltest, um dann aus deinem Datum einen String zu machen!

Ob es überhaupt sinnvoll ist diesen Umweg zu gehen, hast du aber noch nicht beantwortet. Schließlich kannst du über PreparedStatements auch direkt ein Datum in ein Datumsfeld schreiben, und solltest das auch machen, wenn es sich denn überhaupt um ein Datumsfeld in der Datenbank handelt (das hast du ja leide rnicht beantwortet)
 
ich poste das mal in diesen Thread da wir gerade dabei sind Datensätze in die DB einzutragen
Wie kann man die Laufzeit eines Programms in einen String schreiben und die Laufzeit in eine MySQL Datenbank schreiben ?

Ein Java-Datum ist intern nicht wirklich was anderes als ein long-Wert, wobei ein Datum als Millisekunden (ich glaube) seit dem 01.01.1970 gespeichert werden. Was da der genaue Stichtag ist, ist aber auch egal. Jedenfalls bekommst du über die
Code:
getTime
Methode die Anzahl dieser Milliksekunden. Differenz zwischen Datum in Milliksekunden am Ende der Prozedur minus Millisekunden zu Beginn ergibt dann die ungefähre Laufzeit deines Programms in Millisekunden.
Das ist zwar keine wirklich schöne Form der Zeitmessung, wird für deine Zwecke aber vermutlich mehr als ausreichen.
 
ich nehme an, dass das Datumsfeld in der MySQL DB ein Timestamp Datentyp ist...
daher muss vor dem Insert das JAVA Datum in einen Timestamp konvertiert vorliegen...


Java:
Timestamp ts = new Timestamp(endeDate.getTime());

den Insert machst du so:

Java:
String sqlInsert = "INSERT INTO "+database+ " (datetime) VALUES (?);";"
preparedStatement = connect.prepareStatement(sqlInsert);
preparedStatement.setTimestamp(2, ts);
preparedStatement.executeUpdate();
 

Neue Themen


Zurück
Oben