시간소인
타임스탬프는 날짜와 시간을 나타내는 6자리 또는 7자리 값(년, 월, 일, 시, 분, 초, 선택 사항인 분수 초)과 선택 사항인 시간대 지정으로 구성됩니다.
타임스탬프 값의 시간 부분에는 분수 초의 사양이 포함될 수 있습니다. 소수점 이하 자릿수는 0-12 범위의 속성을 사용하여 지정되며, 기본값은 6입니다. 시간대는 현지 시간과 UTC 간의 시간과 분의 차이입니다. 시간 오프셋의 범위는 -12에서 14이고, 분 오프셋은 00에서 59입니다. 선택적 시간대는 ±th:tm 형식으로 지정되며, 값의 범위는 -12:59부터 +14:00까지입니다. 타임스탬프 데이터 유형은 시간대가 없는 타임스탬프(일반적으로 TIMESTAMP라고 함) 또는 시간대가 있는 타임스탬프입니다.
시간대 없는 시간소인
타임스탬프의 내부 표현은 7~13바이트의 문자열로, 각 문자열은 두 개의 10진수 팩트로 구성되어 있습니다. 처음 4바이트는 날짜를 나타내고, 그 다음 3바이트는 시간을 나타내며, 나머지 바이트는 타임스탬프의 정확도에 따라 소수점 이하 초를 나타냅니다.
카탈로그에 설명된 대로 시간대 없는 타임스탬프 열의 길이는 내부 길이이며, 7~13바이트입니다.
SQLDA에 설명된 대로 시간대 없는 타임스탬프의 길이는 19-32바이트 범위이며, 이는 값의 문자열 표현 길이와 일치합니다. 예를 들어, 19바이트 문자열 표현에는 소수점 이하 초가 없습니다. 26바이트 문자열 표현에는 6자리 소수점 이하 초가 있고, 29바이트 문자열 표현에는 9자리 소수점 이하 초가 있습니다.
문자열 표현은 실제 길이가 255바이트를 초과해서는 안 되며, CLOB 또는 DBCLOB이어서는 안 됩니다.
TIMESTAMP WITH TIME ZONE
시간대 정보가 포함된 타임스탬프 값의 외부 표현은 현지 타임스탬프 뒤에 시간대 오프셋이 오는 형태입니다. 예를 들어, 뉴욕은 표준시 기준으로 런던보다 5시간 늦기 때문에 2010년 2월 10일 오전 8시 15분은 ' 2010-02-10-08.15.00-5:00 '로 표시할 수 있습니다. 이 타임스탬프와 시간대 값은 현지 타임스탬프에서 시간대 오프셋을 빼서 도출한 UTC 값 ' 2010-02-10-13.15.00 '을 나타냅니다.
타임스탬프의 내부 표현은 UTC 타임스탬프와 시간대가 포함된 9~15바이트의 문자열입니다. 각 바이트는 2개의 압축 10진수로 구성됩니다. 첫 번째 바이트는 시간대 시간을 나타내는 두 개의 팩트 십진수로 구성되며, 첫 번째 비트는 시간대 오프셋의 부호를 나타내는 데 사용됩니다. 시간대 분을 나타내는 두 번째 바이트도 두 개의 10진수 팩트로 구성됩니다. 예를 들어, 시간대 "-3 :30"은 X'8330'으로 표시되고, 시간대 "5:30"은 X'0530'으로 표시됩니다.
카탈로그에 설명된 타임존이 있는 타임스탬프 열의 길이는 내부 길이이며, 9~15바이트(7~13바이트 타임스탬프 뒤에 2바이트 타임존이 추가됨)입니다.
SQLDA에 설명된 바와 같이, 시간대 포함 타임스탬프 열의 길이는 외부 길이이며, 147-160 바이트의 범위이고, 값의 문자열 표현에 대한 길이에 해당합니다. 예를 들어, 147 바이트 문자 표현은 소수점 이하 초를 포함하지 않으며, 160 바이트 문자열 표현은 시간대 구성 요소가 7 바이트인 12자리 소수점 이하 초를 포함합니다.
문자열 표현은 실제 길이가 255바이트를 초과해서는 안 되며, CLOB 또는 DBCLOB이어서는 안 됩니다. 따라서 DCLGEN은 시간대 정보가 있는 타임스탬프 열에 대해 147~160 바이트의 가변 길이 문자열 변수를 정의합니다.