Qualquer corpo pode me dizer como posso armazenar data de Java para data e hora de Mysql ...?
Quando estou tentando fazer isso ... apenas a data é armazenada e a hora permanece 00:00:00 em armazenamentos de data Mysql assim ...
2009-09-22 00:00:00
Eu não quero apenas namorar, mas também tempo ... gosto
2009-09-22 08:08:11
Estou usando JPA (Hibernate) com classes de mydomain spring usa java.util.Date, mas criei tabelas usando consultas escritas à mão ...
esta é minha declaração de criação
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
(em 2010 provavelmente não havia escolha melhor). Melhor usar as classes modernas, comojava.time.Instant
oujava.time.LocalDateTime
, dependendo dos requisitos exatos para a data e hora que você precisa armazenar.Respostas:
veja no link:
http://www.coderanch.com/t/304851/JDBC/java/Java-date-MySQL-date-conversion
O código a seguir acabou de resolver o problema:
Este ' currentTime ' foi inserido na coluna cujo tipo era DateTime e foi bem sucedido.
fonte
yyyy-MM-dd HH:mm:ss
é muito importante. Observe a capitalização.Anote seu campo (ou getter) com
@Temporal(TemporalType.TIMESTAMP)
, assim:Isso deve funcionar.
fonte
Você talvez esteja usando
java.sql.Date
? Embora tenha granularidade de milissegundos como uma classe Java (é uma subclasse dejava.util.Date
má decisão de design), será interpretada pelo driver JDBC como uma data sem um componente de tempo. Você tem que usar em seujava.sql.Timestamp
lugar.fonte
java.sql.Date
oujava.sql.Timestamp
em classes de domínio, mas acho que isso foi escrito antes da edição do OP.Provavelmente porque sua data java tem um formato diferente de
mysql format
(YYYY-MM-DD HH:MM:SS
)faça isso
fonte
você obterá o formato de hora 2011-07-18 +
fonte
mysql datetime -> GregorianCalendar
GregorianCalendar -> mysql datetime
fonte
fonte
Use o seguinte código para inserir a data no MySQL. Em vez de alterar o formato de nossa data para atender aos requisitos do MySql, podemos ajudar o banco de dados a reconhecer nossa data definindo os
STR_TO_DATE(?, '%l:%i %p')
parâmetros.Por exemplo, 12/03/2014 pode ser representado como
STR_TO_DATE('2014-03-12', '%Y-%m-%d')
fonte
É muito simples, embora as condições nesta resposta sejam em mysql, o tipo de dados da coluna é datetime e você deseja enviar dados do código Java para mysql:
java.util.Date dt = new java.util.Date ();
whatever your code object may be
.setDateTime (dt);fonte
Na verdade, você não pode usar SimpleDateFormat, você pode usar algo assim;
Desta forma, você pode obter diretamente a data com o formato especificado.
fonte
Eu ainda prefiro o método em uma linha
fonte
funciona para mim !!
na tabela mysql
na entidade:
em processo:
na declaração preparada:
fonte