¿Alguien puede decirme cómo puedo almacenar Java Date en Mysql datetime ...?
Cuando intento hacerlo ... solo se almacena la fecha y el tiempo permanece 00:00:00 en las tiendas de fechas de Mysql como esta ...
2009-09-22 00:00:00
Quiero no solo una cita, sino también una hora ... como
2009-09-22 08:08:11
Estoy usando JPA (Hibernate) con las clases de midominio de primavera que usan java.util.Date pero he creado tablas usando consultas escritas a mano ...
esta es mi declaración de creación
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
nada (en 2010 probablemente no había una mejor opción). Es mejor usar las clases modernas, comojava.time.Instant
ojava.time.LocalDateTime
, dependiendo de los requisitos exactos para la fecha y hora que necesita almacenar.Respuestas:
ver en el enlace:
http://www.coderanch.com/t/304851/JDBC/java/Java-date-MySQL-date-conversion
El siguiente código acaba de resolver el problema:
Este ' currentTime ' se insertó en la columna cuyo tipo era DateTime y fue exitoso.
fuente
yyyy-MM-dd HH:mm:ss
es muy importante. Tome nota de las mayúsculas.Anote su campo (o getter) con
@Temporal(TemporalType.TIMESTAMP)
, así:Eso debería hacer el truco.
fuente
¿Quizás estás usando
java.sql.Date
? Si bien tiene una granularidad de milisegundos como una clase de Java (es una subclase de unajava.util.Date
mala decisión de diseño), el controlador JDBC lo interpretará como una fecha sin un componente de hora. Tienes que usarjava.sql.Timestamp
en su lugar.fuente
java.sql.Date
ojava.sql.Timestamp
en clases de dominio, pero supongo que esto se escribió antes de la edición del OP.Probablemente porque su fecha de Java tiene un formato diferente de
mysql format
(YYYY-MM-DD HH:MM:SS
)hacer esto
fuente
obtendrá el formato de hora 2011-07-18 +
fuente
mysql datetime -> GregorianCalendar
GregorianCalendar -> mysql datetime
fuente
fuente
Utilice el siguiente código para insertar la fecha en MySQL. En lugar de cambiar el formato de nuestra fecha para cumplir con los requisitos de MySql, podemos ayudar a la base de datos a reconocer nuestra fecha configurando el
STR_TO_DATE(?, '%l:%i %p')
parámetros.Por ejemplo, 2014-03-12 se puede representar como
STR_TO_DATE('2014-03-12', '%Y-%m-%d')
fuente
Es muy simple, aunque las condiciones en esta respuesta están en mysql, el tipo de datos de la columna es datetime y desea enviar datos desde el código java a mysql:
java.util.Date dt = new java.util.Date ();
whatever your code object may be
.setDateTime (dt);fuente
En realidad, no puede usar SimpleDateFormat, puede usar algo como esto;
De esta manera, puede obtener directamente la fecha con el formato especificado.
fuente
Todavía prefiero el método en una línea
fuente
esto funciona para mi !!
en la tabla mysql
en entidad:
en proceso:
en estado preparado:
fuente