SQL 변경 사항: 새 날짜 및 시간 형식 요소 추가(보류 중)

주의

이 동작 변경 사항은 2026_03 번들에 포함되어 있습니다.

번들의 현재 상태는 번들 기록 섹션을 참조하십시오.

이 동작 변경 번들이 활성화되면 새로운 짧은 형식의 날짜 및 시간 형식 요소가 활성화되어 날짜/시간 형식 지정 및 구문 분석 논리에 영향을 줍니다.

변경 전:

Y, MO, D, H24, H12, H, ME, S, P 형식 요소는 날짜/시간-문자열 또는 문자열-날짜/시간 변환에서 리터럴 문자로 구문 분석 및 직렬화되었습니다.

변경 후:

이제 다음과 같은 새로운 형식 요소가 구문 분석 및 형식 지정 논리에 의해 해석됩니다.

  • “연도”의 경우 ``Y``(패딩되지 않음)

  • “월”의 경우 ``MO``(패딩되지 않음)

  • “일”의 경우 ``D``(패딩되지 않음)

  • “하루 중 24시간 기준 시간”의 경우 ``H24``(패딩되지 않음)

  • “하루 중 12시간 기준 시간”의 경우 ``H12``(패딩되지 않음)

  • ``H``는 ``H24``의 동의어입니다.

  • “분”의 경우 ``ME``(패딩되지 않음)

  • “초”의 경우 ``S``(패딩되지 않음)

  • “단일 문자 AM/PM 표시기”의 경우 ``P``(AM의 경우 A 또는 PM의 경우 P)

이러한 문자 또는 시퀀스를 따옴표 없이 사용하면 리터럴이 아닌 형식 요소로 해석됩니다.

이 동작 변경은 DATE, TIME, TIMESTAMP_LTZ, TIMESTAMP_NTZ, TIMESTAMP_TZ의 형식 모델에서 이러한 새 형식 요소를 따옴표가 없는 문자로 사용한 사용자에게 주요 변경 사항이 될 수 있습니다.

예:

  • 이전에는 SELECT TO_CHAR(current_timestamp(), 'YYYY-MM-DD JST')``가 시퀀스 "JST"를 리터럴 문자로 출력했습니다(예: ``2026-03-18 JST).

  • 이제 JST``의 ``S``는 "두 번째" 형식 요소로 해석되며, 형식 지정 논리는 숫자 값(``2026-03-18 J47T)을 삽입합니다.

수행해야 할 작업

이러한 새 형식 요소를 형식 모델에서 따옴표가 없는 문자 또는 문자열로 사용하는 경우, 리터럴 문자로 유지해야 하는 형식 모델의 모든 부분을 따옴표로 묶습니다. 예:

-- Before (incorrect after this change):
SELECT TO_CHAR(current_timestamp(), 'YYYY-MM-DD JST');

-- After (corrected):
SELECT TO_CHAR(current_timestamp(), 'YYYY-MM-DD "JST"');

Ref: 2281