본문으로 건너뛰기
최종 수정: 에

날짜 타입 리터럴

설명​

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