Может ли кто-нибудь сказать мне, как я могу сохранить дату Java в Mysql datetime ...?
Когда я пытаюсь это сделать ... сохраняется только дата, а время остается 00:00:00 в таких хранилищах дат Mysql ...
2009-09-22 00:00:00
Я хочу не только дату, но и время ... как
2009-09-22 08:08:11
Я использую JPA (Hibernate) с классами spring mydomain, использующими java.util.Date, но я создал таблицы, используя рукописные запросы ...
это мой оператор создания
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 году, вероятно, не было лучшего выбора). Лучше использовать современные классы, напримерjava.time.Instant
илиjava.time.LocalDateTime
, в зависимости от точных требований к дате и времени, которые вам нужно хранить.Ответы:
см. по ссылке:
http://www.coderanch.com/t/304851/JDBC/java/Java-date-MySQL-date-conversion
Следующий код только что решил проблему:
Это « currentTime » было вставлено в столбец типа DateTime, и это было успешно.
источник
yyyy-MM-dd HH:mm:ss
очень важно. Обратите внимание на заглавные буквы.Аннотируйте свое поле (или получатель)
@Temporal(TemporalType.TIMESTAMP)
, например:Это должно делать свое дело.
источник
Вы, наверное, используете
java.sql.Date
? Хотя у этого класса Java есть миллисекунды (это подклассjava.util.Date
, плохое дизайнерское решение), он будет интерпретирован драйвером JDBC как дата без компонента времени.java.sql.Timestamp
Вместо этого вы должны использовать .источник
java.sql.Date
илиjava.sql.Timestamp
в доменных классах, но думаю, это было написано до редактирования OP.Вероятно потому, что ваша дата java имеет другой формат от
mysql format
(YYYY-MM-DD HH:MM:SS
)сделай это
источник
вы получите 2011-07-18 + формат времени
источник
mysql datetime -> GregorianCalendar
GregorianCalendar -> дата и время MySQL
источник
источник
Используйте следующий код, чтобы вставить дату в MySQL. Вместо изменения формата нашей даты в соответствии с требованиями MySql мы можем помочь базе данных распознать нашу дату, установив параметр
STR_TO_DATE(?, '%l:%i %p')
параметры.Например, 2014-03-12 можно представить как
STR_TO_DATE('2014-03-12', '%Y-%m-%d')
источник
Это очень просто, хотя условия в этом ответе находятся в mysql, тип данных столбца - datetime, и вы хотите отправить данные из java-кода в mysql:
java.util.Date dt = новый java.util.Date ();
whatever your code object may be
.setDateTime (дт);источник
На самом деле вы можете не использовать SimpleDateFormat, вы можете использовать что-то вроде этого;
Таким образом вы можете напрямую получить дату в указанном формате.
источник
Я по-прежнему предпочитаю метод в одну строку
источник
меня устраивает !!
в таблице mysql
в сущности:
в процессе:
в подготовленном заявлении:
источник