728x90
java 에서 long 형의 timestamp / long java.util.calendar.getTimeInMillis() 를 할경우 13자리의 값
이 값은 1970-01-01 부터 시작하는 값으로 해당 값이 디비에 박힐 경우 쿼리 상에서 변환은 안된다.
물론 java 8 의 개선된 date는 long 형의 timestamp 값을 어떻게 넣어주는 지는 모르지만
해당 내용을 잘 알고 있는 상황에서 오라클 쿼리에서 date 형 변환을 할려고 했더니 되지 않았다
삽질 한 끝에 복잡한 방식을 써서 쿼리를 넣어야 정상 값이 나오는걸 알았다....
SELECT TO_CHAR(
TO_TIMESTAMP('1970-01-01 00:00:00.0'
,'YYYY-MM-DD HH24:MI:SS.FF'
) + NUMTODSINTERVAL(1525247708464/1000, 'SECOND')
,'YYYY-MM-DD HH24:MI:SS.FF')
FROM dual;
728x90
'sql' 카테고리의 다른 글
table 건수가 많을 경우 delete 보단 truncate 가 낫다 (0) | 2018.11.12 |
---|---|
오라클 글자 byte 단위로 substr 하기 (0) | 2018.02.09 |
오라클 패키지 호출 구조 (0) | 2017.11.28 |
서브쿼리 종류중 select 절에 사용하는 스칼라 서브 쿼리 (0) | 2016.11.11 |
mybatis 사용 안하고 select key키 대체 prepareStatement 직접 사용시 insert 구문 입력 성공 리턴값 확인 (0) | 2015.12.02 |