날짜 함수

날짜는 많은 데이터 원본에서 공통 요소입니다. 필드에 식별 가능한 날짜가 포함되어 있으면 날짜 또는 날짜 시간 데이터 유형이 사용됩니다. 비주얼리제이션에서 날짜 필드를 사용하면 자동 날짜 계층 구조 드릴다운, 날짜별 필터 옵션, 특수 날짜 서식 옵션 등 특별한 기능 집합을 사용할 수 있습니다. 계산에 날짜를 사용하려면 날짜 관련 함수를 사용해야 하는 경우가 많습니다.

다른 날짜 개념 숙지

날짜 함수는 date_part 인수, 선택적 [start_of_week] 매개 변수 및 날짜 리터럴(#)을 비롯한 날짜 관련 요소를 참조하는 경우가 있습니다. 이러한 내용은 이 항목의 끝 부분에서 자세히 다룹니다.

날짜 함수에 속하지 않지만 관심을 가질 만한 다음 몇 가지 항목도 참조하십시오.

: 필드가 이미 날짜로 인식되어 있고(데이터 패널에 날짜 아이콘이 있음) 비주얼리제이션에 표시되는 방식을 제어하려고 하는 경우 날짜 함수를 사용하는 대신 서식을 지정해야 할 수도 있습니다. 예를 들어, 22Sept2024을 09/24로 표시하려 합니다. 이는 계산이 아닌 날짜 형식을 통해 처리됩니다.

날짜 필드를 사용한 작업에 대한 관련 항목 및 사용자 지정 날짜 형식을 참조하십시오. 이 페이지에서 날짜 함수를 사용하면 표시 형식을 설정하는 것이 아니라 계산된 날짜 필드를 조작할 수 있습니다.

Tableau에서 사용할 수 있는 날짜 함수

DATE

인식할 수 있는 형식의 문자열 및 숫자 식을 날짜로 변경하는 형식 변환 함수입니다.

구문DATE(expression)
출력날짜
정의숫자, 문자열 또는 날짜 <expression>이 주어진 날짜를 반환합니다.
DATE([Employee Start Date])
DATE("September 22, 2018") 
DATE("9/22/2018")
DATE(#2018-09-22 14:52#)
참고

DATEPARSE와 달리 DATE는 다양한 표준 날짜 형식을 자동으로 인식하므로 패턴을 제공할 필요가 없습니다. 그러나 DATE가 입력을 인식하지 못하면 DATEPARSE를 사용하여 형식을 지정해 보십시오.

MAKEDATE도 비슷한 함수이지만 MAKEDATE에는 연도, 월, 일에 대한 숫자 값을 입력해야 합니다.

DATEADD

시작 날짜에 지정된 수의 날짜 부분(월, 일 등)을 추가합니다.

구문DATEADD(date_part, interval, date)
출력날짜
정의지정된 숫자의 <interval>을 해당 날짜의 지정된 <date_part>에 더해 <date>를 반환합니다. 예를 들어 시작 날짜에 3개월 또는 12일을 추가합니다.

모든 만기 날짜를 1주일 단위로 푸시

DATEADD('week', 1, [due date])

날짜 2021년 2월 20일에 280일을 더하기

DATEADD('day', 280, #2/20/21#) = #November 27, 2021#
참고ISO 8601 날짜를 지원합니다.

DATEDIFF

두 날짜 사이의 날짜 부분(주, 년 등) 수를 반환합니다.

구문DATEDIFF(date_part, date1, date2, [start_of_week])
출력정수
정의<date_part> 단위로 표시된 <date1><date2>의 차이를 반환합니다. 예를 들어 누군가가 밴드를 가입하고 탈퇴한 날짜를 빼면 해당 밴드 체류 기간을 확인할 수 있습니다.

1986년 3월 25일과 2021년 2월 20일 사이의 일 수

DATEDIFF('day', #3/25/1986#, #2/20/2021#) = 12,751

밴드 체류 개월 수

DATEDIFF('month', [date joined band], [date left band])
참고ISO 8601 날짜를 지원합니다.

DATENAME

지정된 날짜 부분의 이름을 불연속형 문자열로 반환합니다.

구문DATENAME(date_part, date, [start_of_week])
출력문자열
정의<date><date_part>를 문자열로 반환합니다.
DATENAME('year', #3/25/1986#) = "1986"
DATENAME('month', #1986-03-25#) = "March"
참고

ISO 8601 날짜를 지원합니다.

매우 유사한 계산은 DATEPART이며, 이 계산에서는 지정된 날짜 부분의 값을 연속형 정수로 반환합니다. DATEPART는 숫자 연산이므로 속도가 더 빠릅니다.

계산 결과의 특성(차원 또는 측정값, 연속형 또는 불연속형)과 날짜 형식을 변경하면 DATEPARTDATENAME의 결과 서식이 동일하게 지정될 수 있습니다.

역함수는 DATEPARSE이며, 문자열 값을 가져와 날짜 형식으로 지정합니다.

DATEPARSE

특정 형식의 문자열을 날짜로 반환합니다.

구문DATEPARSE(date_format, date_string)
출력날짜
정의<date_format> 인수는 <date_string> 필드가 정렬되는 방식을 설명합니다. 문자열 필드를 정렬할 수 있는 방법이 다양하므로 <date_format>이 정확히 일치해야 합니다. 이에 대한 전체 설명과 형식 세부 정보는 필드를 날짜 필드로 변환(링크가 새 창에서 열림)을 참조하십시오.
DATEPARSE('yyyy-MM-dd', "1986-03-25") = #March 25, 1986#
참고

DATE는 다양한 표준 날짜 형식을 자동으로 인식하는 유사한 함수입니다. DATE가 입력 패턴을 인식하지 못하는 경우 DATEPARSE가 더 나은 옵션이 될 수 있습니다.

MAKEDATE도 비슷한 함수이지만 MAKEDATE에는 연도, 월, 일에 대한 숫자 값을 입력해야 합니다.

날짜를 구분하고 해당 부분 값을 반환하는 역함수는 DATEPART(정수 출력) 및 DATENAME(문자열 출력)입니다.

데이터베이스 제한 사항

DATEPARSE는 레거시가 아닌 Excel 및 텍스트 파일 연결, Amazon EMR Hadoop Hive, Cloudera Hadoop, Google 스프레드시트, Hortonworks Hadoop Hive, MapR Hadoop Hive, MySQL, Oracle, PostgreSQL 및 Tableau 추출 커넥터를 통해 사용할 수 있습니다. 일부 형식은 일부 연결에 사용할 수 없습니다.

DATEPARSE는 Hive 버전에서 지원되지 않습니다. Denodo, Drill 및 Snowflake에서만 지원됩니다.

DATEPART

지정된 날짜 부분의 이름을 정수로 반환합니다.

구문DATEPART(date_part, date, [start_of_week])
출력정수
정의<date><date_part>를 정수로 반환합니다.
DATEPART('year', #1986-03-25#) = 1986
DATEPART('month', #1986-03-25#) = 3
참고

ISO 8601 날짜를 지원합니다.

매우 유사한 계산은 DATENAME이며, 이 계산에서는 지정된 날짜 부분의 이름을 불연속형 문자열로 반환합니다. DATEPART는 숫자 연산이므로 속도가 더 빠릅니다. 필드 특성(차원 또는 측정값, 연속형 또는 불연속형)과 날짜 형식을 변경하면 DATEPARTDATENAME의 결과 서식이 동일하게 지정될 수 있습니다.

역함수는 DATEPARSE이며, 문자열 값을 가져와 날짜 형식으로 지정합니다.

DATETRUNC

이 함수는 날짜 반올림이라고 할 수 있습니다. 특정 날짜를 사용하여 원하는 특이성으로 해당 날짜의 버전을 반환합니다. 모든 날짜에는 일, 월, 분기 및 연도 값이 있어야 하므로 DATETRUNC는 이 값을 지정된 날짜 부분까지 각 날짜 부분에 대해 가장 낮은 값으로 설정합니다. 자세한 내용은 예를 참조하십시오.

구문DATETRUNC(date_part, date, [start_of_week])
출력날짜
정의<date><date_part>에 지정된 정확도에 따라 잘라냅니다. 이 함수는 새 날짜를 반환합니다. 예를 들어 월 수준에서 월의 가운데에 있는 날짜를 잘라내면 이 함수는 월의 첫째 날을 반환합니다.
DATETRUNC('day', #9/22/2018#) = #9/22/2018#
DATETRUNC('iso-week', #9/22/2018#) = #9/17/2018#

(9/22/2018을 포함하는 주의 월요일)

DATETRUNC(quarter, #9/22/2018#) = #7/1/2018# 

(9/22/2018을 포함하는 분기의 첫째 날)

참고: 주 및 ISO 주의 경우 start_of_week가 적용됩니다. ISO 주는 항상 월요일에서 시작합니다. 이 예의 로캘에서 지정되지 않은 start_of_week는 주가 일요일에 시작됨을 의미합니다.

참고

ISO 8601 날짜를 지원합니다.

예를 들어 비주얼리제이션의 날짜/시간 필드에 시간 표시를 중지하는 데 DATETRUNC를 사용해서는 안 됩니다. 날짜의 정확도를 반올림하지 않고 표시 방식을 자르려면 서식을 조정(링크가 새 창에서 열림)하면 됩니다.

예를 들어, DATETRUNC('day', #5/17/2022 3:12:48 PM#)가 비주얼리제이션에서 초를 표시하도록 서식이 지정된 경우 5/17/2022 12:00:00 AM으로 표시됩니다. 값은 일 단위로 잘리지만 표시는 초로 변경됩니다.

DAY

특정 월의 일자(1~31)를 정수로 반환합니다.

구문DAY(date)
출력정수
정의주어진 <date>의 일을 정수로 반환합니다.
Day(#September 22, 2018#) = 22
참고WEEK, MONTH, QUARTER, YEAR 및 해당 ISO 날짜도 참조하십시오.

ISDATE

문자열이 유효한 날짜 형식인지 확인합니다.

구문ISDATE(string)
출력부울
정의주어진 <string>이 유효한 날짜이면 true를 반환합니다.
ISDATE(09/22/2018) = true
ISDATE(22SEP18) = false
참고필수 인수는 문자열이어야 합니다. 날짜 데이터 유형이 있는 필드에는 ISDATE를 사용할 수 없습니다. 계산 시 오류가 반환됩니다.

ISOQUARTER

구문ISOQUARTER(date)
출력정수
정의주어진 <date>의 ISO8601 주 기반 분기를 정수로 반환합니다.
ISOQUARTER(#1986-03-25#) = 1
참고ISOWEEK, ISOWEEKDAY, ISOYEAR 및 해당 ISO 이외의 날짜도 참조하십시오.

ISOWEEK

구문ISOWEEK(date)
출력정수
정의주어진 <date>의 ISO8601 주 기반 주를 정수로 반환합니다.
ISOWEEK(#1986-03-25#) = 13
참고ISOWEEKDAY, ISOQUARTER, ISOYEAR 및 해당 ISO 이외의 날짜도 참조하십시오.

ISOWEEKDAY

구문ISOWEEKDAY(date)
출력정수
정의주어진 <date>의 ISO8601 주 기반 요일을 정수로 반환합니다.
ISOWEEKDAY(#1986-03-25#) = 2
참고ISOWEEK, ISOQUARTER, ISOYEAR 및 해당 ISO 이외의 날짜도 참조하십시오.

ISOYEAR

구문ISOYEAR(date)
출력정수
정의주어진 <date>의 ISO8601 주 기반 연도를 정수로 반환합니다.
ISOYEAR(#1986-03-25#) = 1,986
참고ISOWEEK, ISOWEEKDAY, ISOQUARTER 및 해당 ISO 이외의 날짜도 참조하십시오.

MAKEDATE

구문MAKEDATE(year, month, day)
출력날짜
정의지정된 <year>, <month><day>로 구성된 날짜 값을 반환합니다.
MAKEDATE(1986,3,25) = #1986-03-25#
참고

참고: 값을 잘못 입력하면 4월 31일이 없다는 오류를 반환하는 대신 MAKEDATE(2020,4,31) = May 1, 2020처럼 날짜가 조정됩니다.

Tableau 데이터 추출에 사용할 수 있습니다. 다른 데이터 원본에서는 사용 가능한지 확인해야 합니다.

MAKEDATE에는 날짜 부분에 대한 숫자 입력이 필요합니다. 데이터가 날짜를 나타내는 문자열이면 DATE 함수를 사용해 보십시오. DATE는 다양한 표준 날짜 형식을 자동으로 인식합니다. DATE가 입력을 인식하지 못하면 DATEPARSE를 사용해 보십시오.

MAKEDATETIME

구문MAKEDATETIME(date, time)
출력날짜/시간
정의<date><time>을 결합하는 날짜/시간을 반환합니다. 날짜는 날짜, 날짜/시간 또는 문자열 유형일 수 있습니다. 시간은 날짜/시간이어야 합니다.
MAKEDATETIME("1899-12-30", #07:59:00#) = #12/30/1899 7:59:00 AM#
MAKEDATETIME([Date], [Time]) = #1/1/2001 6:00:00 AM#
참고

이 함수는 MySQL 호환 연결에만 사용할 수 있습니다(Tableau에서는 MySQL 및 Amazon Aurora).

MAKETIME은 Tableau 데이터 추출 및 일부 다른 데이터 원본에 사용할 수 있는 유사한 함수입니다.

MAKETIME

구문MAKETIME(hour, minute, second)
출력날짜/시간
정의지정된 <hour>, <minute><second>로 구성된 날짜 값을 반환합니다.
MAKETIME(14, 52, 40) = #1/1/1899 14:52:40#
참고

Tableau는 시간 데이터 유형을 지원하지 않고 날짜/시간만 지원하므로 출력은 날짜/시간입니다. 필드의 날짜 부분은 1/1/1899입니다.

MAKEDATETIME과 유사한 함수, MYSQL 호환 연결에서만 사용할 수 있습니다.

MAX

구문MAX(expression) 또는 MAX(expr1, expr2)
출력인수와 동일한 데이터 유형이거나, 인수의 일부가 null인 경우 NULL 값이 출력됩니다.
정의

두 인수의 최대값을 반환합니다(두 인수가 동일한 데이터 유형이어야 함).

MAX 함수를 단일 필드에 집계로 적용할 수도 있습니다.

MAX(4,7) = 7
MAX(#3/25/1986#, #2/20/2021#) = #2/20/2021#
MAX([Name]) = "Zander"
참고

문자열의 경우

MAX는 일반적으로 사전순으로 마지막에 오는 값입니다.

데이터베이스 데이터 원본의 경우 MAX 문자열 값은 데이터베이스가 해당 열에 정의한 정렬 순서에서 가장 높은 값을 찾습니다.

날짜의 경우

날짜의 경우 MAX는 가장 최근 날짜입니다. MAX가 집계인 경우 결과에 날짜 계층 구조가 없습니다. MAX가 비교인 경우 결과에 날짜 계층 구조가 유지됩니다.

집계 형식

MAX(expression)는 집계 함수이며 단일 집계 결과를 반환합니다. 이는 비주얼리제이션에서 AGG(expression)와 같이 표시됩니다.

비교 형식

MAX(expr1, expr2)는 두 값을 비교하여 행 수준 값을 반환합니다.

MIN도 참조하십시오.

MIN

구문MIN(expression) 또는 MIN(expr1, expr2)
출력인수와 동일한 데이터 유형이거나, 인수의 일부가 null인 경우 NULL 값이 출력됩니다.
정의

두 인수의 최소값을 반환합니다(두 인수가 동일한 데이터 유형이어야 함).

MIN 함수를 단일 필드에 집계로 적용할 수도 있습니다.

MIN(4,7) = 4
MIN(#3/25/1986#, #2/20/2021#) = #3/25/1986#
MIN([Name]) = "Abebi"
참고

문자열의 경우

MIN은 일반적으로 사전순으로 맨 처음 나타나는 값입니다.

데이터베이스 데이터 원본의 경우 MIN 문자열 값은 데이터베이스가 해당 열에 정의한 정렬 순서에서 가장 낮은 값을 찾습니다.

날짜의 경우

날짜의 경우 MIN은 가장 이른 날짜입니다. MIN가 집계인 경우 결과에 날짜 계층 구조가 없습니다. MIN가 비교인 경우 결과에 날짜 계층 구조가 유지됩니다.

집계 형식

MIN(expression)는 집계 함수이며 단일 집계 결과를 반환합니다. 이는 비주얼리제이션에서 AGG(expression)와 같이 표시됩니다.

비교 형식

MIN(expr1, expr2)는 두 값을 비교하여 행 수준 값을 반환합니다.

MAX도 참조하십시오.

MONTH

구문MONTH(date)
출력정수
정의주어진 <date>의 월을 정수로 반환합니다.
MONTH(#1986-03-25#) = 3
참고DAY, WEEK, QUARTER, YEAR 및 해당 ISO 날짜도 참조하십시오.

NOW

구문NOW()
출력날짜/시간
정의현재 로컬 시스템 날짜 및 시간을 반환합니다.
NOW() = 1986-03-25 1:08:21 PM
참고

NOW는 인수를 사용하지 않습니다.

날짜/시간 대신 날짜를 반환하는 유사한 계산인 TODAY도 참조하십시오.

데이터 원본이 라이브 연결인 경우 시스템 날짜 및 시간이 다른 시간대에 있을 수 있습니다. 이 문제를 해결하는 방법에 대한 자세한 내용은 기술 자료를 참조하십시오.

QUARTER

구문QUARTER(date)
출력정수
정의주어진 <date>의 분기를 정수로 반환합니다.
QUARTER(#1986-03-25#) = 1
참고DAY, WEEK, MONTH, YEAR 및 해당 ISO 날짜도 참조하십시오.

TODAY

구문TODAY()
출력날짜
정의현재 로컬 시스템 날짜를 반환합니다.
TODAY() = 1986-03-25
참고

TODAY는 인수를 사용하지 않습니다.

날짜 대신 날짜/시간을 반환하는 유사한 계산인 NOW도 참조하십시오.

데이터 원본이 라이브 연결인 경우 시스템 날짜가 다른 시간대에 있을 수 있습니다. 이 문제를 해결하는 방법에 대한 자세한 내용은 기술 자료를 참조하십시오.

WEEK

구문WEEK(date)
출력정수
정의주어진 <date>의 주를 정수로 반환합니다.
WEEK(#1986-03-25#) = 13
참고DAY, MONTH, QUARTER, YEAR 및 해당 ISO 날짜도 참조하십시오.

YEAR

구문YEAR(date)
출력정수
정의주어진 <date>의 년을 정수로 반환합니다.
YEAR(#1986-03-25#) = 1,986
참고DAY, WEEK, MONTH, QUARTER 및 해당 ISO 날짜도 참조하십시오.

date_part

Tableau의 수많은 날짜 함수는 일, 주, 분기 등과 같이 고려해야 할 날짜 부분을 함수에 알려주는 문자열 상수인 date_part 인수를 사용합니다. 사용할 수 있는 올바른 date_part 값은 다음과 같습니다.

date_part
'year'4자리 연도
'quarter'1-4
'month'1-12 또는 "1월", "2월" 등
'dayofyear'일년 중 몇째 날. 1월 1일은 1, 2월 1일은 32 등으로 계산됩니다.
'day'1-31
'weekday'1-7 또는 "일요일", "월요일" 등
'week'1-52
'hour'0-23
'minute'0-59
'second'0-60
'iso-year'4자리 ISO 8601 연도
'iso-quarter'1-4
'iso-week'1-52, 주의 시작은 항상 월요일
'iso-weekday'1-7, 주의 시작은 항상 월요일

[start_of_week] 매개 변수

일부 함수에는 선택적 매개 변수 [start_of_week]가 있습니다. start_of_week 매개 변수는 "일요일" 또는 "월요일"과 같이 주의 첫번째 요일로 간주되는 요일을 지정하는 데 사용할 수 있습니다. 생략되면 주의 시작은 데이터 원본에 의해 결정됩니다. 데이터 원본의 날짜 속성을 참조하십시오.

아래 예에서 9월 22일은 일요일이고 9월 24일은 화요일입니다. DATEDIFF 함수는 이러한 날짜 사이의 주를 계산하는 데 사용됩니다.

DATEDIFF('week', #2013-09-22#, #2013-09-24#, 'monday') = 1

  • start_of_week는 'monday'이므로 이들 날짜는 다른 주에 있습니다.

DATEDIFF('week', #2013-09-22#, #2013-09-24#, 'sunday') = 0

  • start_of_week는 'sunday'이므로 이들 날짜는 같은 주에 있습니다.

날짜 리터럴(#)

예에서는 파운드 기호(#)를 날짜 식과 함께 사용하는 경우가 많습니다. 이는 텍스트 문자열에 따옴표를 사용하는 것과 유사한 날짜 리터럴이며 기호 내의 값이 날짜임을 Tableau에 알립니다.

날짜 리터럴이 없으면 날짜는 다양한 다른 데이터 유형으로 해석될 수 있습니다. 예:

형식데이터 유형
'March 25, 1986'문자열'March 25, 1986'
#1986-03-25#날짜#1986-03-25#
03/25/1986부동 소수점0.00006042
1986-03-25정수1,958
March 25, 1986 유효하지 않음

자세한 내용은 리터럴 식 구문을 참조하십시오.

날짜 계산 만들기

Superstore 샘플 데이터 원본을 사용하여 날짜 계산을 만들어 보겠습니다.

  1. Tableau Desktop에서 Tableau와 함께 제공된 샘플 – 슈퍼스토어라는 저장된 데이터 원본에 연결합니다.
  2. 워크시트를 엽니다.
  3. 데이터 패널의 차원에서 Order Date(주문 날짜) 선반에 끌어 놓습니다.
  4. 선반에서 YEAR(Order Date) 필드에 있는 더하기 아이콘(+)을 클릭합니다.

    QUARTER(Order Date)가 행 선반에 추가되고 뷰가 업데이트됩니다.

  5. 선반에서 QUARTER(Order Date) 필드에 있는 더하기 아이콘(+)을 클릭하여 MONTH(Order Date)로 드릴다운합니다.

  6. 분석 > 계산된 필드 만들기를 선택합니다.
  7. 계산 에디터가 열리면 다음을 수행합니다.
    • 계산된 필드의 이름을 Quarter Date로 지정합니다.
    • 다음 수식을 입력합니다. DATETRUNC('quarter', [Order Date])
    • 작업을 마쳤으면 확인을 클릭합니다.

      새 날짜의 계산된 필드가 데이터 패널의 차원 아래에 나타납니다. 다른 필드와 마찬가지로, 하나 이상의 비주얼리제이션에서 이 필드를 사용할 수 있습니다.

  8. 데이터 패널의 차원 아래에서 Quarter Date(분기 날짜)선반으로 끌어 MONTH(Order Date) 오른쪽에 놓습니다. 연도 값을 사용하여 비주얼리제이션이 업데이트됩니다. 이렇게 되는 이유는 Tableau가 날짜 데이터를 가장 높은 세부 수준까지 롤업하기 때문입니다.
  9. 행 선반에서 YEAR(Quarter Date)를 마우스 오른쪽 단추로 클릭하고 정확한 날짜를 선택합니다.
  10. 행 선반에서 YEAR(Quarter Date)를 다시 마우스 오른쪽 단추로 클릭하고 불연속형을 선택합니다.

    테이블의 각 행에 대한 정확한 분기 날짜를 사용하여 비주얼리제이션이 업데이트됩니다.

피드백을 제공해 주셔서 감사합니다!귀하의 피드백이 제출되었습니다. 감사합니다!