반응형

에러 java.sql.Timestamp cannot be cast to java.lang.String

 

DB에 timestamp 타입의 열을 만들면 자바에서 위의 에러를 뱉어낼 때가 있다.

 

이럴때는 쿼리문 또는 자바에서 데이트포맷을 변경해주어야 한다.

 

예를 들어 xml파일에 아래의 쿼리문을 입력하면

 

SELECT MEMBER_ID, MEMBER_PASS, LOGIN_DATE
FROM MEMBER

 

LOGIN_DATE의 데이터타입이 timestamp라면 java.sql.Timestamp cannot be cast to java.lang.String 에러를 띄우게 되는데 그때는 아래의 쿼리문으로 바꾸면 된다.

SELECT MEMBER_ID, MEMBER_PASS,
DATE_FORMAT(LOGIN_DATE, '%Y-%m-%d %H:%i:%s') AS LOGIN_DATE
FROM MEMBER

 

march, june같은 영어 월로 바꾸려면 %m을 %M으로 바꾸면된다.

 

또한 2020-07-08 08:20:05  <<이런 데이터를 15914634~~같은 UNIX타입으로 변화시키려면 아래 자바코드를 이용한다.

 

import java.util.Date

//String으로 되어 있는 날짜를 UNIX타입으로 저장
java.sql.Timestamp date_timestamp01 = java.sql.Timestamp.valueOf(date_string);

long date_timestamp02 = date_timestamp01.getTime(); //date_timestamp02의 값은 159823~~~값을 가진다.


//현재 시간을 UNIX타입 으로 저장하는 코드
Long now01 = System.currentTimeMillis();


//현재 시간을 yyyy-MM-dd HH:mm:ss 포맷으로 저장하는 코드
Date now = new Date(); //Date타입으로 변수 선언
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //데이트 포맷
String date_string = dateFormat.format(now); //날짜가 string으로 저장
반응형

+ Recent posts