Kann mir jemand sagen, wie ich Java Date in MySQL datetime speichern kann ...?
Wenn ich das versuche ... wird nur das Datum gespeichert und die Uhrzeit bleibt in MySQL-Datumsgeschäften wie diesem 00:00:00 ...
2009-09-22 00:00:00
Ich möchte nicht nur Datum, sondern auch Uhrzeit ... wie
2009-09-22 08:08:11
Ich verwende JPA (Hibernate) mit Spring Mydomain-Klassen verwendet java.util.Date, aber ich habe Tabellen mit handschriftlichen Abfragen erstellt ...
Dies ist meine create-Anweisung
CREATE TABLE ContactUs (id BIGINT auto_increment,
userName VARCHAR(30),
email VARCHAR(50),
subject VARCHAR(100),
message VARCHAR(1024),
messageType VARCHAR(15),
contactUsTime datetime,
primary key(id))
TYPE=InnoDB;
java.util.Date
(2010 gab es wahrscheinlich keine bessere Wahl). Verwenden Sie besser die modernen Klassen wiejava.time.Instant
oderjava.time.LocalDateTime
, abhängig von den genauen Anforderungen für das Datum und die Uhrzeit, die Sie speichern müssen.Antworten:
siehe im Link:
http://www.coderanch.com/t/304851/JDBC/java/Java-date-MySQL-date-conversion
Der folgende Code hat das Problem gerade gelöst:
Diese ' currentTime ' wurde in die Spalte mit dem Typ DateTime eingefügt und war erfolgreich.
quelle
yyyy-MM-dd HH:mm:ss
ist sehr wichtig. Beachten Sie die Großschreibung.Kommentieren Sie Ihr Feld (oder Ihren Getter) folgendermaßen
@Temporal(TemporalType.TIMESTAMP)
:Das sollte den Trick machen.
quelle
Benutzt du vielleicht
java.sql.Date
? Während dies als Java-Klasse eine Millisekunden-Granularität aufweist (es ist eine Unterklasse einerjava.util.Date
schlechten Entwurfsentscheidung), wird es vom JDBC-Treiber als Datum ohne Zeitkomponente interpretiert. Sie müssenjava.sql.Timestamp
stattdessen verwenden.quelle
java.sql.Date
oderjava.sql.Timestamp
in Domain-Klassen verwenden, aber ich denke, dies wurde vor der Bearbeitung des OP geschrieben.Wahrscheinlich, weil Ihr Java-Datum ein anderes Format hat als
mysql format
(YYYY-MM-DD HH:MM:SS
)mach das
quelle
Sie erhalten das Zeitformat 2011-07-18 +
quelle
mysql datetime -> GregorianCalendar
GregorianCalendar -> mysql datetime
quelle
quelle
Verwenden Sie den folgenden Code, um das Datum in MySQL einzufügen. Anstatt das Format unseres Datums zu ändern, um die Anforderungen von MySql zu erfüllen, können wir der Datenbank helfen, unser Datum zu erkennen, indem wir die
STR_TO_DATE(?, '%l:%i %p')
Parameter festlegen .Beispielsweise kann der 12.03.2014 als dargestellt werden
STR_TO_DATE('2014-03-12', '%Y-%m-%d')
quelle
Es ist sehr einfach, obwohl die Bedingungen in dieser Antwort in MySQL sind. Der Spaltendatentyp ist Datumszeit und Sie möchten Daten vom Java-Code an MySQL senden:
java.util.Date dt = new java.util.Date ();
whatever your code object may be
.setDateTime (dt);quelle
Tatsächlich können Sie SimpleDateFormat nicht verwenden. Sie können so etwas verwenden.
Auf diese Weise können Sie das Datum direkt mit dem angegebenen Format abrufen.
quelle
Ich bevorzuge immer noch die Methode in einer Zeile
quelle
Für mich geht das !!
in MySQL-Tabelle
in Entität:
in Bearbeitung:
in vorbereitetem Statement:
quelle