티베로 스튜디오는
오라클의 Sql Developer 프로그램같은 거다.
가끔씩 개발하다보면 데이터를 직접 변경할 일이 있다.
그런데 티베로 스튜디오에서 데이터 수정하고 저장하니까 날짜가 어쩌고 저쩌고 하면서 변경이안된다.
날짜를 변경한것도 아니다.
다른 데이터 변경하고 저장하면 저장이안됨
그래서 티베로에 날짜 자료형 사용을 포기하고
문자열로 변경했다.
현재는 정해진 포맷에 따라서 문자열로 저장하고
불러올 때 MyBatis의 TypeHandler로 바로 ZonedDateTime으로 변경해서 사용하고있다.
ZonedDateTime --> String
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("패턴");
String str = date.format(formatter);
String --> ZonedDateTime
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("패턴");
ZonedDateTime date = ZonedDateTime.parse(str, formatter);
포맷 스트링 작성 방법은 API 문서를 보면 된다.
docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
예시 > yyyy-MM-dd HH:mm:ss.SSSSSSSSS xxx
소수점을 늘리고 싶으면 S를 더써주면 된다.
타임존 정보를 표시할떄는 x, X, z, Z 등을 사용하는데 상세하게 설명되어있다.
위에서 사용한 xx는 +0130 으로 나온다.
기존에는 DateTime을 사용하고 있었는데
요구사항이 소수점 9번째 자리까지 저장하자고 그래서
보니까 DateTime은 문자열로 변환할때 소수점 9째자리까지 안되는 문제가 있었다.
SimpleDateFormat? 만 그런건지 다른식으로 하면 DateTime도 9째자리까지 되는지는 모르겠지만
그냥 새로나온 ZonedDateTime을 쓰니까 다 해결됐다.
근데 나중에 자기들이 하다가 못했는지 다시 세자리로 변경됐다.
'백엔드 > 데이터베이스' 카테고리의 다른 글
실수로 지운 데이터 복구하기 (0) | 2021.11.25 |
---|---|
실수 값 비교할 때 주의할 점 (0) | 2021.03.21 |
[TIBERO] JDBC-90401:Connection refused by server (0) | 2021.01.12 |
타입 (0) | 2020.12.05 |
IBatis Inline Parameter (0) | 2019.05.10 |
댓글