콘텐츠로 이동

식을 날짜로 변환합니다. 지원하는 변환은 다음과 같습니다.

  • 타임스탬프 형식 문자열을 날짜로 변환: 지정한 문자열에서 날짜를 추출합니다.

  • 정수를 날짜로 변환: 정수를 Unix 에포크(1970년 1월 1일 자정) 이전(음수) 또는 이후(양수)의 일 수로 해석합니다. 참고: Date 값의 범위는 1000-01-01부터 9999-12-31까지입니다. “SELECT TO_DATE(9999999999999999999)“를 실행하면 PlaidCloud Lakehouse에서 오류가 반환됩니다.

  • 지정한 형식을 사용하여 문자열을 날짜로 변환: 이 함수는 두 개의 인수를 받아, 두 번째 문자열에 지정한 형식에 따라 첫 번째 문자열을 날짜로 변환합니다. PlaidCloud Lakehouse에서 날짜 및 시간 형식을 사용자 지정하려면 지정자를 사용할 수 있습니다. 지원되는 지정자의 전체 목록은 날짜 및 시간 서식 지정을 참조하십시오.

날짜 형식은 strftime 사양을 사용하여 표현합니다. 빠른 참조를 참조하십시오.

참고: TO_TIMESTAMP

예시 출력
%m/%d/%Y 06/05/2013
%A, %B %e, %Y Sunday, June 5, 2013
%b %e %a Jun 5 Sun
예시 출력
%H:%M 23:05
%I:%M %p 11:05 PM
기호 예시 영역
%a Sun 요일
%A Sunday
%w 0..6 (일요일이 0)
— — —
%y 13 연도
%Y 2013
— — —
%b Jan 월
%B January
%m 01..12
— — —
%d 01..31 일
%e 1..31
기호 예시 영역
%l 1 시
%H 00..23 24시간제 시
%I 01..12 12시간제 시
– — —
%M 00..59 분
%S 00..60 초
— — —
%p AM 오전 또는 오후
%Z +08 시간대
— — —
%j 001..366 연중 일차
%% % 리터럴 % 문자
func.to_date('<timestamp_expr>')
func.to_date(<integer>)
func.to_date('<string>', '<format>')
func.typeof(func.to_date('2022-01-02')), func.typeof(func.str_to_date('2022-01-02'))
┌───────────────────────────────────────────────────────────────────────────────────────┐
│ func.typeof(func.to_date('2022-01-02')) │ func.typeof(func.str_to_date('2022-01-02')) │
├─────────────────────────────────────────┼─────────────────────────────────────────────┤
│ DATE │ DATE │
└───────────────────────────────────────────────────────────────────────────────────────┘
-- Convert a timestamp-format string
TO_DATE('<timestamp_expr>')
-- Convert an integer
TO_DATE(<integer>)
-- Convert a string using the given format
TO_DATE('<string>', '<format>')

이 함수는 “YYYY-MM-DD” 형식의 날짜를 반환합니다.

SELECT TYPEOF(TO_DATE('2022-01-02')), TYPEOF(STR_TO_DATE('2022-01-02'));
┌───────────────────────────────────────────────────────────────────┐
│ typeof(to_date('2022-01-02')) │ typeof(str_to_date('2022-01-02')) │
├───────────────────────────────┼───────────────────────────────────┤
│ DATE │ DATE │
└───────────────────────────────────────────────────────────────────┘

반환된 날짜를 다시 문자열로 변환하려면 DATE_FORMAT 함수를 사용합니다.

SELECT DATE_FORMAT(TO_DATE('2022-01-02')) AS dt, TYPEOF(dt);
┌─────────────────────────┐
│ dt │ typeof(dt) │
├────────────┼────────────┤
│ 2022-01-02 │ VARCHAR │
└─────────────────────────┘

SQL 예시 1: 타임스탬프 형식 문자열 변환

섹션 제목: “SQL 예시 1: 타임스탬프 형식 문자열 변환”
SELECT TO_DATE('2022-01-02T01:12:00+07:00'), STR_TO_DATE('2022-01-02T01:12:00+07:00');
┌─────────────────────────────────────────────────────────────────────────────────┐
│ to_date('2022-01-02t01:12:00+07:00') │ str_to_date('2022-01-02t01:12:00+07:00') │
├──────────────────────────────────────┼──────────────────────────────────────────┤
│ 2022-01-01 │ 2022-01-01 │
└─────────────────────────────────────────────────────────────────────────────────┘
SELECT TO_DATE('2022-01-02'), STR_TO_DATE('2022-01-02');
┌───────────────────────────────────────────────────┐
│ to_date('2022-01-02') │ str_to_date('2022-01-02') │
├───────────────────────┼───────────────────────────┤
│ 2022-01-02 │ 2022-01-02 │
└───────────────────────────────────────────────────┘
SELECT TO_DATE(1), STR_TO_DATE(1), TO_DATE(-1), STR_TO_DATE(-1);
┌───────────────────────────────────────────────────────────────────┐
│ to_date(1) │ str_to_date(1) │ to_date((- 1)) │ str_to_date((- 1)) │
│ Date │ Date │ Date │ Date │
├────────────┼────────────────┼────────────────┼────────────────────┤
│ 1970-01-02 │ 1970-01-02 │ 1969-12-31 │ 1969-12-31 │
└───────────────────────────────────────────────────────────────────┘

SQL 예시 3: 지정한 형식을 사용한 문자열 변환

섹션 제목: “SQL 예시 3: 지정한 형식을 사용한 문자열 변환”
SELECT TO_DATE('12/25/2022','%m/%d/%Y'), STR_TO_DATE('12/25/2022','%m/%d/%Y');
┌───────────────────────────────────────────────────────────────────────────┐
│ to_date('12/25/2022', '%m/%d/%y') │ str_to_date('12/25/2022', '%m/%d/%y') │
├───────────────────────────────────┼───────────────────────────────────────┤
│ 2022-12-25 │ 2022-12-25 │
└───────────────────────────────────────────────────────────────────────────┘