Java Date를 Mysql datetime에 저장하는 방법…?
어떤 시체가 Java Date를 Mysql datetime에 어떻게 보여줄 수 있습니까?
내가 그렇게 할 때 ... 날짜 만 저장되고 시간은 다음과 같이 Mysql 날짜 저장소에 00:00:00으로 유지됩니다 ...
2009-09-22 00:00:00
데이트뿐 아니라 시간도 원해 ...
2009-09-22 08:08:11
Spring mydomain 클래스와 함께 JPA (Hibernate)를 사용하여 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;
링크에서 참조하십시오.
http://www.coderanch.com/t/304851/JDBC/java/Java-date-MySQL-date-conversion
다음 코드는 문제를 해결했습니다.
java.util.Date dt = new java.util.Date();
java.text.SimpleDateFormat sdf =
new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currentTime = sdf.format(dt);
이 ' currentTime '은 유형이 DateTime이고 성공한 열에 삽입되었습니다.
다음과 같이 필드 (또는 게터)에 주석을 추가합니다 @Temporal(TemporalType.TIMESTAMP)
.
public class MyEntity {
...
@Temporal(TemporalType.TIMESTAMP)
private java.util.Date myDate;
...
}
그게 트릭을해야합니다.
아마도 사용하고 java.sql.Date
있습니까? 이는 밀리 초 단위의 Java 클래스 ( java.util.Date
잘못된 설계 결정 의 하위 클래스 임 )이지만 JDBC 드라이버에 의해 시간 구성 요소가없는 날짜로 해석됩니다. java.sql.Timestamp
대신 사용해야 합니다.
아마도 자바 날짜가 ( ) 와 다른 형식을 가지고 있기 때문일 것입니다.mysql format
YYYY-MM-DD HH:MM:SS
이 작업을 수행
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
System.out.println(dateFormat.format(date));
2011-07-18 + 시간 형식이 표시됩니다.
long timeNow = Calendar.getInstance().getTimeInMillis();
java.sql.Timestamp ts = new java.sql.Timestamp(timeNow);
...
preparedStatement.setTimestamp(TIME_COL_INDEX, ts);
mysql datetime-> GregorianCalendar
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = format.parse("2012-12-13 14:54:30"); // mysql datetime format
GregorianCalendar calendar = new GregorianCalendar();
calendar.setTime(date);
System.out.println(calendar.getTime());
GregorianCalendar-> mysql datetime
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String string = format.format(calendar.getTime());
System.out.println(string);
java.util.Date date = new Date();
Object param = new java.sql.Timestamp(date.getTime());
preparedStatement.setObject(param);
다음 코드를 사용하여 MySQL에 날짜를 삽입하십시오. MySql의 요구 사항을 수용하기 위해 날짜 형식을 변경하는 대신에 STR_TO_DATE(?, '%l:%i %p')
대신 변수 를 설정하여 데이터베이스가 날짜를 인식하도록 도울 수 있습니다 .
예를 들어 2014-03-12는 다음과 같이 수 있습니다. STR_TO_DATE('2014-03-12', '%Y-%m-%d')
preparedStatement = connect.prepareStatement("INSERT INTO test.msft VALUES (default, STR_TO_DATE( ?, '%m/%d/%Y'), STR_TO_DATE(?, '%l:%i %p'),?,?,?,?,?)");
이 답변의 조건은 mysql에 있지만 열 데이터 유형은 datetime 이며 Java 코드에서 mysql로 데이터를 보내고 싶습니다.
java.util.Date dt = 새로운 java.util.Date ();
whatever your code object may be
.setDateTime (dt);
중요한 것은 날짜를 선택하고 형식은 이미 mysql 형식에 따라 전송되며 추가 수정이 필요하지 않습니다.
실제로 SimpleDateFormat을 사용하지 않을 수도 있습니다. 다음과 같이 사용할 수 있습니다.
@JsonSerialize(using=JsonDateSerializer.class)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy HH:mm:ss")
private Date blkDate;
이렇게하면 지정된 형식으로 날짜를 직접 가져올 수 있습니다.
나는 여전히 한 줄의 방법을 선호합니다.
new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime())
그것은 나를 위해 작동합니다!
mysql 테이블에서
DATETIME
엔티티에서 :
private Date startDate;
과정에서:
objectEntity.setStartDate(new Date());
readyStatement에서 :
pstm.setDate(9, new java.sql.Date(objEntity.getStartDate().getTime()));
참고 URL : https://stackoverflow.com/questions/2400955/how-to-store-java-date-to-mysql-datetime
'IT' 카테고리의 다른 글
awk로 첫 번째 필드를 사용하는 모든 것을 인쇄 (0) | 2020.08.24 |
---|---|
Spring 현재 ApplicationContext 가져 오기 오기 (0) | 2020.08.24 |
데스크톱에 바로 가기 만들기 (0) | 2020.08.24 |
WPF의 페이지로드시 콤보 상자에 기본 텍스트 "--Select Team-"을 표시하는 방법은 무엇입니까? (0) | 2020.08.24 |
부동 소수점 숫자를 가장 가까운 정수로 반올림 하시겠습니까? (0) | 2020.08.24 |