본문 바로가기
카테고리 없음

[태블로 실무] 갑자기 DATEPARSE 함수가 사라졌다?

by SPACEBBAR 2026. 6. 26.

분명 어제까지 잘 쓰던 DATEPARSE() 함수가 오늘 갑자기 계산식 창에서 보이질 않는다.
혹은 쓰려고 하니 에러가 발생한다. 이럴 때 당황하지 말자. 원인은 딱 하나다.


DATEPARSE() 함수란?

DATEPARSE()는 문자열(String) 데이터를 날짜(Date) 타입으로 변환해 주는 Tableau 전용 함수다.

기본 구문은 아래와 같다.

DATEPARSE(format, string)

 

인수 설명

format 입력 문자열의 날짜 형식 (ISO 8601 기반 패턴)
string 변환할 날짜 문자열 (필드 또는 직접 입력한 값)

 

사용 예시:

DATEPARSE("yyyyMMdd", [기준일자])
// "20250101" → 2025-01-01 (Date 타입)

DATEPARSE("yyyy-MM-dd HH:mm:ss", [타임스탬프])
// "2025-01-01 12:34:56" → 2025-01-01 12:34:56 (Datetime 타입)

날짜 포맷은 Java SimpleDateFormat 패턴을 따른다. 실무에서 가장 자주 쓰는 패턴 몇 가지를 정리하면 다음과 같다.

 

패턴 입력 예시 결과 타입

yyyyMMdd 20250101 Date
yyyy-MM-dd 2025-01-01 Date
yyyy/MM/dd 2025/01/01 Date
yyyy-MM-dd HH:mm:ss 2025-01-01 12:34:56 Datetime

1. 문제 상황

Tableau에서 DB를 라이브 연결(Live Connection) 했을 때, 계산식 작성 창에서 DATEPARSE()가 아예 보이지 않거나, 함수를 입력해도 에러가 발생하는 현상이다.

처음 겪으면 당황스럽다. 분명히 Tableau 공식 문서에 있는 함수인데, 왜 안 되는 걸까?


2. 원인: DATEPARSE()는 Tableau 전용 함수다

DATEPARSE()는 Tableau 내부 엔진(Hyper)에서만 실행되는 함수다.

라이브 연결 상태에서는 Tableau가 계산식을 DB로 그대로 전달(push-down)한다. 즉, Tableau가 직접 계산하는 게 아니라 DB에 SQL 쿼리를 던지는 구조다. 그런데 DATEPARSE()는 DB에 존재하지 않는 함수이므로, 당연히 에러가 난다.

[라이브 연결 구조]
Tableau 계산식 → SQL 변환 → DB 실행
                              ↑
                  여기서 DATEPARSE()를 모름 → 에러
[추출 구조]
Tableau 계산식 → Hyper 엔진 실행
                      ↑
                  DATEPARSE() 사용 가능

이 차이를 이해하면, 해결책도 자연스럽게 두 갈래로 나뉜다.


3. 해결 방법

방법 A: DB 전용 SQL 날짜 변환 함수 사용 (라이브 연결 유지)

라이브 연결을 그대로 유지해야 하는 경우, DB가 이해할 수 있는 날짜 변환 함수를 대신 사용해야 한다.

SAP HANA

TO_DATE('20250101', 'YYYYMMDD')

TO_TIMESTAMP('2025-01-01 12:34:56', 'YYYY-MM-DD HH24:MI:SS')

 

Tableau 계산식 안에서 위 함수를 직접 쓰거나, RAWSQL_DATE() 함수를 활용해 SQL을 직접 호출할 수 있다.

// Tableau 계산식 안에서 RAWSQL_DATE() 활용 예시
RAWSQL_DATE("TO_DATE(%1, 'YYYYMMDD')", [기준일자])

RAWSQL_DATE()는 Tableau가 SQL을 그대로 DB에 전달하도록 강제하는 함수다. 라이브 연결에서 DB 고유 함수를 써야 할 때 유용하다.

 

Oracle

TO_DATE('20250101', 'YYYYMMDD')

TO_TIMESTAMP('2025-01-01 12:34:56', 'YYYY-MM-DD HH24:MI:SS')

Oracle도 SAP HANA와 동일하게 TO_DATE(), TO_TIMESTAMP()를 사용한다. Tableau 계산식에서는 아래처럼 쓸 수 있다.

RAWSQL_DATE("TO_DATE(%1, 'YYYYMMDD')", [기준일자])

 

DB별 날짜 변환 함수 비교

DB 문자열 → 날짜 문자열 → 날짜+시간

SAP HANA TO_DATE(str, format) TO_TIMESTAMP(str, format)
Oracle TO_DATE(str, format) TO_TIMESTAMP(str, format)
MySQL STR_TO_DATE(str, format) STR_TO_DATE(str, '%Y-%m-%d %H:%i:%s')
PostgreSQL TO_DATE(str, format) TO_TIMESTAMP(str, format)
SQL Server CONVERT(DATE, str) CONVERT(DATETIME, str)

포맷 패턴은 DB마다 다르다. SAP HANA / Oracle은 'YYYYMMDD' 형식이고, MySQL은 '%Y%m%d' 형식이다. 반드시 해당 DB 문서를 확인하자.


 

방법 B: 추출(Extract)로 전환

라이브 연결 대신 Tableau Extract(.hyper)를 생성하면, 데이터가 Tableau 엔진(Hyper)으로 로드되면서 DATEPARSE()를 그대로 사용할 수 있다.

Tableau Desktop에서 추출하는 방법:

  1. 상단 메뉴 데이터 → [데이터 원본 이름] → 데이터 추출
  2. 추출 옵션 설정 후 저장
  3. 연결 방식이 추출로 변경되면 DATEPARSE() 사용 가능

단, 실시간 데이터가 필요한 환경에서는 이 방법이 적합하지 않다. 추출은 스냅샷 방식이기 때문에, 추출 시점 이후의 데이터는 반영되지 않는다. Tableau Server에서 일정을 잡아 자동 갱신하는 방식으로 보완할 수 있지만, 갱신 주기만큼의 지연은 감수해야 한다.


4. 정리: 어떤 방법을 선택할까?

상황 권장 방법

실시간 데이터가 반드시 필요 방법 A (DB 전용 SQL 함수 사용)
실시간성 불필요, 속도 중요 방법 B (Extract 추출)
DB 함수를 모름 / 개발팀 협력 어려움 방법 B 우선 고려
Custom SQL 또는 RAWSQL 사용 가능 방법 A (더 유연하게 적용 가능)

마치며

라이브 연결과 추출의 차이를 이해하면, DATEPARSE() 문제뿐 아니라 Tableau에서 발생하는 다양한 함수 에러의 원인을 빠르게 파악할 수 있다.

DATEPARSE()가 안 된다는 건 Tableau가 잘못된 게 아니라, 내가 Tableau에게 불가능한 걸 시키고 있다는 신호다.

라이브면 DB 함수를, 추출이면 Tableau 함수를. 이 원칙 하나만 기억해도 된다.


소개 및 문의 · 개인정보처리방침 · 면책조항

© 2026 블로그 이름