날짜/시간 패턴

적용 대상:check marked yes Databricks SQL check marked yes Databricks 런타임

Azure Databricks의 날짜/시간 사용에 대한 몇 가지 일반적인 시나리오가 있습니다.

패턴 테이블

Azure Databricks는 날짜 및 타임스탬프 구문 분석 및 형식 지정을 위해 다음 표의 패턴 문자를 사용합니다.

기호 의미 프레젠테이션 예제
G 시대 text AD; Anno Domini
y 연도 연도 2020; 20
D 연간 일 number(3) 189
M/L 연간 월 개월 7; 07; 7월; 7월
d 월간 일 number(3) 28
Q/q 연간 사분기 number/text 3; 03; Q3; 3분기
E 요일 text 화; 화요일
F 매월 정렬된 요일 number(1) 3
a 오전-오후 am-pm PM
시간 오전-오후의 실제 시간(1~12) number(2) 12
K 오전-오후(0-11) number(2) 0
k 하루 중 실제 시간(1~24) number(2) 0
H 하루 중 시간(0-23) number(2) 0
m 분/시간 number(2) 30
s 초/분 number(2) 55
S 초의 분수 분수 978
V 표준 시간대 ID zone-id America/Los_Angeles; Z; -08:30
z 표준 시간대 이름 zone-name 태평양 표준시; PST
O 지역화된 영역 오프셋 offset-O GMT+8; GMT+08:00; UTC-08:00;
X 0에 대한 영역 오프셋 'Z' offset-X Z; -08; -0830; -08:30; -083015; -08:30:15;
x 영역 오프셋 offset-x +0000; -08; -0830; -08:30; -083015; -08:30:15;
Z 영역 오프셋 offset-Z +0000; -0800; -08:00;
' 문자 이스케이프 delimiter
'' 작은따옴표 literal '
[ 선택적 섹션 시작
] 선택적 섹션 끝

패턴 문자 수에 따라 형식이 결정됩니다.

  • Text: 텍스트 스타일은 사용된 패턴 문자의 수에 따라 결정됩니다. 4개 미만의 패턴 문자는 짧은 텍스트 형식(일반적으로 약어)을 사용합니다. 예를 들어, 월요일은 "Mon"을 출력할 수 있습니다. 정확히 4개의 패턴 문자는 전체 텍스트 형식을 사용하며 일반적으로 전체 설명을 사용합니다. 예를 들어, 월요일은 "Monday"를 출력할 수 있습니다. 5자 이상은 실패합니다.

  • Number(n): 여기서 n은 이 형식의 날짜/시간 패턴을 사용할 수 있는 최대 문자 수를 나타냅니다. 문자 수가 1이면 패딩 없이 최소 자릿수를 사용하여 값이 출력됩니다. 그렇지 않으면 자릿수가 출력 필드의 너비로 사용되며 필요에 따라 값이 0으로 채워집니다.

  • Number/Text: 패턴 문자 수가 3개 이상인 경우 위의 텍스트 규칙을 사용합니다. 그렇지 않으면 위의 숫자 규칙을 사용합니다.

  • 분수: 하나 이상(최대 9개)의 연속 'S' 문자(예: SSSSSS)를 사용하여 초의 분수를 구문 분석하고 형식을 지정합니다. 구문 분석의 경우 허용되는 분수 길이는 [1, 연속 'S'의 수]일 수 있습니다. 형식화를 위해 분수 길이는 0으로 인접한 'S'의 수로 채워집니다. Azure Databricks는 최대 6개의 유효 숫자가 있는 마이크로-초 정밀도의 날짜/시간을 지원하지만 초과 부분이 잘린 나노-초를 구문 분석할 수 있습니다.

  • 연도: 문자 수에 따라 패딩이 사용되는 최소 필드 너비가 결정됩니다. 문자 수가 2이면 축소된 두 자리 형식이 사용됩니다. 인쇄의 경우 맨 오른쪽 두 자리를 출력합니다. 구문 분석의 경우 기본 값 2000을 사용하여 구문 분석하여 2000~2099(포함) 범위 내의 연도를 생성합니다. 문자 수가 4개 미만(2개는 아님)이면 부호는 음수 연도에 대해서만 출력됩니다. 그렇지 않고 'G'가 없을 때 패드 너비를 초과하면 부호가 출력됩니다. 7자 이상은 실패합니다.

  • 월: Number/Text 규칙을 따릅니다. 텍스트 형식은 문자에 따라 다릅니다. 'M'은 '표준' 형식을 나타내고 'L'은 '독립 실행형' 형식을 나타냅니다. 이 두 형식은 일부 특정 언어에서만 다릅니다. 예를 들어, 러시아어에서 'Июль'는 July의 독립 실행형 형식이고 'Июля'는 표준 형식입니다. 다음은 지원되는 모든 패턴 문자의 예입니다.

    • 'M' 또는 'L': 1부터 시작하는 연도의 월 번호입니다. 'M''L'은 차이가 없습니다. 1~9월은 패딩 없이 인쇄됩니다.

      > SELECT date_format(date '1970-01-01', 'M');
        1
      
      > SELECT date_format(date '1970-12-01', 'L');
        12
      
    • 'MM' 또는 'LL': 1부터 시작하는 연도의 월 번호입니다. 1~9월에 영(0) 채우기가 추가됩니다.

      > SELECT date_format(date '1970-1-01', 'LL');
        01
      
      > SELECT date_format(date '1970-09-01', 'MM');
        09
      
    • 'MMM': 표준 형식의 짧은 텍스트 표현입니다. 월 패턴은 영어와 같이 표준 및 독립 실행형 형식의 차이가 없는 로캘을 제외하고 독립 실행형 월이 아닌 날짜 패턴의 일부여야 합니다.

      > SELECT date_format(date '1970-01-01', 'd MMM');
        1 Jan
      
      -- Passing a format pattern to to_csv()
      > SELECT to_csv(named_struct('date', date '1970-01-01'), map('dateFormat', 'dd MMM', 'locale', 'RU'));
        01 янв.
      
    • 'MMMM': 표준 형식의 전체 텍스트 월 표현입니다. 날짜/타임스탬프의 일부로 월을 구문 분석/형식 지정하는 데 사용됩니다.

      > SELECT date_format(date '1970-01-01', 'd MMMM');
        1 January
      
      -- Passing a format pttern to to_csv()
      > SELECT to_csv(named_struct('date', date '1970-01-01'), map('dateFormat', 'd MMMM', 'locale', 'RU'));
        1 января
      
  • am-pm: 오전, 오후를 출력합니다. 패턴 문자 수는 1이어야 합니다.

  • Zone ID(V): 디스플레이의 표준 시간대 ID를 출력합니다. 패턴 문자 수는 2여야 합니다.

  • Zone names(z): 표준 시간대 ID의 디스플레이 텍스트 이름을 출력합니다. 문자 수가 1, 2, 3이면 짧은 이름이 출력됩니다. 문자 수가 4이면 전체 이름이 출력됩니다. 5자 이상은 실패합니다.

  • Offset X 및 x: 패턴 문자 수를 기반으로 오프셋 형식을 지정합니다. '+0130'과 같이 분이 0이 아닌 경우 분도 출력되지 않는 한 문자 수가 1이면 '+01'과 같이 시간만 출력합니다. 문자 수가 2이면 '+0130'과 같이 콜론 없이 시와 분을 출력합니다. 문자 수가 3이면 '+01:30'과 같이 콜론을 사용하여 시와 분을 출력합니다. 문자 수가 4이면 '+013015'와 같이 콜론 없이 시와 분 및 선택적 초를 출력합니다. 문자 수가 5이면 '+01:30:15'와 같이 콜론을 사용하여 시와 분 및 선택적 초를 출력합니다. 6자 이상은 실패합니다. 패턴 문자 'X'(대문자)는 출력할 오프셋이 0일 때 'Z'를 출력하는 반면, 패턴 문자 'x'(소문자)는 '+00', '+0000' 또는 '+00:00'을 출력합니다.

  • Offset O: 패턴 문자 수를 기반으로 지역화된 오프셋의 형식을 지정합니다. 문자 수가 1이면 지역화된 오프셋의 짧은 형식을 출력하며, 'GMT'와 같이 지역화된 오프셋 텍스트에는 선행 0이 없는 시간, 0이 아닌 경우 선택적 2자리 분 및 초, 콜론(예: 'GMT+8')이 사용됩니다. 문자 수가 4이면 전체 형식을 출력하며, 'GMT'와 같이 지역화된 오프셋 텍스트에는 2자리 시간 및 분 필드, 0이 아닌 경우 선택적 두 번째 필드, 콜론(예: 'GMT+08:00')이 사용됩니다. 다른 문자 수는 실패합니다.

  • Offset Z: 패턴 문자 수를 기반으로 오프셋 형식을 지정합니다. 문자 수가 1, 2 또는 3이면 '+0130'과 같이 콜론 없이 시와 분을 출력합니다. 오프셋이 0일 때 출력은 '+0000'입니다. 문자 수가 4이면 Offset-O의 문자 수가 4인 경우에 해당하는 지역화된 오프셋의 전체 형식을 출력합니다. 오프셋이 0인 경우 출력은 해당하는 지역화된 오프셋 텍스트입니다. 문자 수가 5이면 시, 분을 출력하고 0이 아닌 경우 선택적 초를 콜론과 함께 출력합니다. 오프셋이 0이면 'Z'를 출력합니다. 6자 이상은 실패합니다.

  • 선택적 섹션 시작 및 끝: []를 사용하여 선택적 섹션을 정의하고 중첩될 수 있습니다. 형식을 지정하는 동안에는 선택적 섹션에 있더라도 유효한 모든 데이터가 출력됩니다. 구문 분석하는 동안 구문 분석된 문자열에서 전체 섹션이 누락될 수 있습니다. 선택적 섹션은 [에 의해 시작되고 ]를 사용하여 종료됩니다(또는 패턴의 끝에서).

  • 'E', 'F', 'q' 및 'Q' 기호는 date_format과 같은 날짜/시간 형식 지정에만 사용할 수 있습니다. to_timestamp와 같은 날짜/시간 구문 분석에는 사용할 수 없습니다.