hsqldb에서 TIMESTAMP() 함수는 추가 변환 전에 세션의 시간대로 조정 된 WITHOUT TIME ZONE 타임 스탬프를 반환합니다.hsqldb의 유닉스 타임 스탬프에서 올바르게 옮겨 놓은 UTC 타임 스탬프를 얻는 방법
그럼 내 세션이 UTC + 1이고 다른 곳에서 오는 유닉스 타임 스탬프가 1364353339 (Wed, 27 Mar 2013 03:02:19 GMT, http://www.onlineconversion.com/unix_time.htm에 따라)라고 가정 해 보겠습니다. 내가 전화하면 :
VALUES(TIMESTAMP(1364353339) AT TIME ZONE INTERVAL '0:00' HOUR TO MINUTE);
이것은 2013-03-27 02:02:19.000000+0:00
입니다. 이것은 정확한 tz를 가지고 있지만 실제 값은 1 시간 미만이어야합니다.
다른 가능성 나는
VALUES(TIMESTAMP(1364353339) AT LOCAL) --> 2013-03-27 03:02:19.000000+1:00
Value right, TZ wrong
VALUES CAST(TIMESTAMP(1364353339) AT TIME ZONE INTERVAL '0:00' HOUR TO MINUTE AS TIMESTAMP(0) WITH TIME ZONE); --> 2013-03-27 02:02:19+0:00
Value wrong, TZ right
VALUES CAST(TIMESTAMP(1364353339) AT LOCAL AS TIMESTAMP(0) WITH TIME ZONE) --> 2013-03-27 03:02:19+1:00
Value right, TZ wrong
세션의 시간대가 이전에 (SET TIME ZONE INTERVAL '0:00' HOUR TO MINUTE
으로 예를 들어) UTC로 전환되면 모든 이들의 올바른 값 (중 2013-03-27 03:02:19+0:00
또는 2013-03-27 04:02:19+1:00
)을 반환
이것은 뷰 필드에 대해 계산되므로 수행 할 수 없습니다. 실제 시간 소인은 텍스트 테이블의 필드에서옵니다.