2013-04-15 4 views
5

1348560343598과 같은 유닉스 타임 스탬프 값을 H2 Timestamp으로 변환하려면 어떻게해야합니까?유닉스 타임 스탬프를 H2 타임 스탬프로 변환

내 테이블 중 하나에 BIGINT(19) 열에 이러한 유닉스 타임 스탬프가 포함되어 있으며이 테이블을 TIMESTAMP 유형의 열로 변환해야합니다.

답변

7

좋아, 다음 공식을 사용하여 작동합니다

select DATEADD('SECOND', 1348560343, DATE '1970-01-01') 

그냥, 당신이 Numeric value out of range을 얻을 것이다 작동하지 않습니다 'MILLISECOND'을 사용하여 1000와 타임 스탬프를 분할해야합니다.

+2

밀리 초가 작동하지 않습니다. 예, 동일한 문제가 발생했습니다. 이것은 실제로 내부적으로 사용되는'Calendar.add (int field, int amount)'의 한계입니다. H2는 시간대 문제 때문에 대부분의 날짜/시간 기능에 대해 더 이상 java.util.Calendar를 사용하지 않지만이 경우에도 여전히 사용됩니다. –

+0

이것은 실제로 JVM 시간을 가리 킵니다 (그래서 UTC가되도록 강요 할 수 없기 때문에 데이터베이스에 타임 스탬프를 저장하는 것이 더 의미가 있습니다). – marios

관련 문제