Quelqu'un peut-il me dire comment puis-je stocker une date Java dans un datetime Mysql ...
Lorsque j'essaie de le faire ... seule la date est stockée et l'heure reste 00:00:00 dans les magasins de dates Mysql comme celui-ci ...
2009-09-22 00:00:00
Je veux non seulement la date mais aussi l'heure ... comme
2009-09-22 08:08:11
J'utilise JPA (Hibernate) avec les classes spring mydomain utilise java.util.Date mais j'ai créé des tables à l'aide de requêtes manuscrites ...
c'est ma déclaration de création
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
du tout (en 2010, il n'y avait probablement pas de meilleur choix). Mieux vaut utiliser les classes modernes, commejava.time.Instant
oujava.time.LocalDateTime
, en fonction des exigences exactes de la date-heure que vous devez stocker.Réponses:
voir dans le lien:
http://www.coderanch.com/t/304851/JDBC/java/Java-date-MySQL-date-conversion
Le code suivant vient de résoudre le problème:
Ce ' currentTime ' a été inséré dans la colonne dont le type était DateTime et il a réussi.
la source
yyyy-MM-dd HH:mm:ss
c'est tres important. Prenez note de la capitalisation.Annotez votre champ (ou getter) avec
@Temporal(TemporalType.TIMESTAMP)
, comme ceci:Cela devrait faire l'affaire.
la source
Utilisez-vous peut-être
java.sql.Date
? Bien que cela ait une granularité de l'ordre de la milliseconde en tant que classe Java (il s'agit d'une sous-classe dejava.util.Date
mauvaise décision de conception), il sera interprété par le pilote JDBC comme une date sans composant d'heure. Vous devez utiliser à lajava.sql.Timestamp
place.la source
java.sql.Date
oujava.sql.Timestamp
dans les classes de domaine mais je suppose que cela a été écrit avant la modification de l'OP.Probablement parce que votre date java a un format différent de
mysql format
(YYYY-MM-DD HH:MM:SS
)fais ça
la source
vous obtiendrez le 18/07/2011 + le format de l'heure
la source
mysql datetime -> GregorianCalendar
GregorianCalendar -> mysql datetime
la source
la source
Utilisez le code suivant pour insérer la date dans MySQL. Au lieu de changer le format de notre date pour répondre aux exigences de MySql, nous pouvons aider la base de données à reconnaître notre date en définissant les
STR_TO_DATE(?, '%l:%i %p')
paramètres.Par exemple, 2014-03-12 peut être représenté comme
STR_TO_DATE('2014-03-12', '%Y-%m-%d')
la source
Ses conditions très simples dans cette réponse sont dans mysql, le type de données de la colonne est datetime et vous voulez envoyer des données du code java à mysql:
java.util.Date dt = nouveau java.util.Date ();
whatever your code object may be
.setDateTime (dt);la source
En fait, vous ne pouvez pas utiliser SimpleDateFormat, vous pouvez utiliser quelque chose comme ça;
De cette façon, vous pouvez obtenir directement la date avec le format spécifié.
la source
Je préfère toujours la méthode en une seule ligne
la source
ça marche pour moi !!
dans la table mysql
dans l'entité:
en cours:
dans la déclaration préparée:
la source