최종 수정: 에
날짜 타입 리터럴
설명
Doris에서는 표준 SQL에 따라 날짜 리터럴을 지정할 때 타입 키워드와 문자열을 사용해야 합니다. 키워드와 문자열 사이의 공백은 생략할 수 있습니다. 예를 들면 다음과 같습니다:
DATE '2008-08-08'
TIMESTAMP '2008-08-08 20:08:08'
날짜 형식
DATE 리터럴
-로 구분된'YYYY-MM-DD'또는'YY-MM-DD'형식의 문자열을 사용합니다. Doris는 MySQL의 비표준 구분자 형식도 지원하지만, 사용을 권장하지 않습니다.- 구분자가 없는 문자열은
'YYYYMMDD'또는'YYMMDD'형식을 사용합니다(문자열이 유효한 날짜를 나타내는 경우).
DATETIME 및 TIMESTAMPTZ 리터럴
-로 구분된'YYYY-MM-DD hh:mm:ss'또는'YY-MM-DD hh:mm:ss'형식의 문자열을 사용합니다. Doris는 MySQL의 비표준 구분자 형식도 지원하지만, 사용을 권장하지 않습니다. 날짜와 시간 사이의 구분자로는 공백() 또는T를 사용할 수 있습니다. MySQL 8.4 및 이전 버전과 달리, Doris는 시간과 날짜 사이에 다른 구분자를 지원하지 않습니다.- 구분자가 없는 문자열은
'YYYYMMDDhhmmss'또는'YYMMDDhhmmss'형식을 사용합니다(문자열이 유효한 날짜를 나타내는 경우).
DATETIME 리터럴에는 마이크로초 정밀도(소수점 이하 여섯 자리)까지 초의 소수 부분을 포함할 수 있습니다. 소수 부분은 항상 점(.)으로 나머지 시간 부분과 구분해야 하며, 초의 소수 부분을 구분하는 다른 구분자는 인식되지 않습니다.
두 자리 연도
두 자리 연도 값이 포함된 날짜는 세기를 알 수 없어 모호합니다. Doris는 다음 규칙에 따라 두 자리 연도 값을 해석합니다:
- 연도 값이 70-99이면 1970-1999년으로 해석합니다.
- 연도 값이 00-69이면 2000-2069년으로 해석합니다.
시간대
DATE, DATETIME 및 TIMESTAMPTZ 리터럴에는 시간대 접미사를 사용할 수 있습니다. 시간대를 사용할 때는 시간대가 앞의 날짜 또는 시간 부분에 공백 없이 바로 이어져야 합니다. 예를 들면 다음과 같습니다:
TIMESTAMP '2008-08-08 20:08:08+08:00'
Doris에서 지원하는 시간대 형식은 다음과 같습니다:
- 시간대 오프셋: 형식은
{+ | -}hh:mm입니다. 예를 들어 UTC+8은+08:00으로 표현합니다. - 시간대 이름. 예를 들어 상하이 시간대는
Asia/Shanghai입니다.
잘못된 값 처리
유효한 날짜 리터럴로 파싱할 수 없는 값이 입력되면 Doris는 즉시 오류를 반환합니다. 예를 들면 다음과 같습니다:
SELECT date '071332'
다음 오류가 발생합니다:
date/datetime literal [071332] is invalid