DateTime64 타입은 컬럼 전체에 공통으로 적용되는 시간대(time zone)를 저장할 수 있으며, 이는 DateTime64 타입 값이 텍스트 포맷으로 표시되는 방식과 문자열로 지정된 값이 파싱되는 방식(‘2020-01-01 05:00:01.000’)에 영향을 줍니다. 시간대는 테이블의 행(또는 결과 집합)에 저장되지 않고 컬럼 메타데이터에 저장됩니다. 자세한 내용은 DateTime을 참조하십시오.
지원되는 값 범위: [1900-01-01 00:00:00, 2299-12-31 23:59:59.999999999]
소수점 아래 자릿수는 정밀도 매개변수에 따라 달라집니다.
참고: 최댓값의 정밀도는 8입니다. 최대 정밀도인 9자리(나노초)를 사용하는 경우, UTC에서 지원되는 최댓값은 2262-04-11 23:47:16입니다.
예시
DateTime64타입 컬럼이 있는 테이블을 생성하고 데이터를 삽입합니다:
- datetime를 정수로 삽입하면, 적절한 scale이 적용된 Unix timestamp(UTC)로 처리됩니다.
1546300800000은 (정밀도가 3인 경우) UTC 기준'2019-01-01 00:00:00'을 나타냅니다. 하지만timestamp컬럼에는Asia/Istanbul(UTC+3) 시간대가 지정되어 있으므로, 문자열로 출력할 때 값은'2019-01-01 03:00:00'으로 표시됩니다. datetime를 Decimal로 삽입하는 경우에도 정수와 비슷하게 처리되지만, decimal point 앞의 값은 초 단위까지 포함한 Unix timestamp로 처리되고, decimal point 뒤의 값은 정밀도로 처리됩니다. - 문자열 값을 datetime로 삽입하면 컬럼의 시간대를 기준으로 처리됩니다.
'2019-01-01 00:00:00'은Asia/Istanbul시간대로 간주되어1546290000000으로 저장됩니다.
DateTime64값 필터링
DateTime과 달리 DateTime64 값은 String에서 자동 변환되지 않습니다.
toDateTime64 함수는 모든 값을 Decimal 형식으로 처리하므로 정밀도는
소수점 아래에 지정해야 합니다.
DateTime64유형 값의 시간대 가져오기:
- 시간대 변환