기술 자료

NOW() 및 TODAY() 함수가 예기치 않은 표준 시간대의 날짜/시간 반환


게시 날짜: 04 Mar 2013
마지막 수정 날짜: 23 Oct 2023

문제

계산된 필드에 NOW() 또는 TODAY() 함수를 사용하면 Tableau Desktop이 다른 표준 시간대의 시간을 반환하거나 기준 날짜 필터를 사용하면 고정 날짜가 다른 표준 시간대가 됩니다.

환경

  • Tableau Desktop
  • PostgreSQL
  • Tableau Server 리포지토리(PostgreSQL 데이터베이스)
  • Amazon Redshift
  • 다른 표준 시간대의 컴퓨터에 호스팅된 데이터 원본의 라이브 연결

해결 방법

옵션 1:

추출을 사용합니다. 자세한 내용은 데이터 추출을 참조하십시오.


옵션 2:

표준 시간대 오프셋을 고려하도록 계산에 DATEADD() 함수를 사용합니다.

예제 1:

  • UTC에서 PST(태평양 표준시)로 변환하려면 다음 수식을NOW()
  • 다음과 같이 수정합니다.DATEADD('hour', -8, NOW())

참고: 일광 절약 시간 중에는 UTC와 PDT 사이의 시간 차이가 -7시간이 됩니다.

예제 2:

기준 날짜 필터를 UTC에서 PST(태평양 표준시)로 변환하려면

  1. 필터 선반에서 날짜 필터를 제거합니다.
  2. 분석 > 계산된 필드 만들기를 선택합니다.
  3. 계산된 필드 대화 상자에서 다음을 수행한 후 확인을 클릭합니다.
    • 계산된 필드에 이름을 지정합니다. 이 예에서 계산된 필드의 이름은 "Last 3 Days Filter"입니다.
    • 수식 필드에서 다음과 유사한 계산을 만듭니다.

      [Date Field] >= DATEADD('day', -3, DATEADD( 'hour', -8, TODAY() ) )

  4. [Last 3 Days Filter(지난 3일 필터)]를 필터 선반으로 끌어옵니다.
  5. 필터 대화 상자에서 참을 선택하고 확인을 클릭합니다.

 

원인

라이브 연결을 사용하면 Tableau Desktop은 NOW() 또는 TODAY()의 데이터 원본을 쿼리합니다. 이때 데이터 원본이 다른 표준 시간대의 컴퓨터에 호스팅되어 있으면 데이터 원본은 해당 표준 시간대의 시간을 반환할 수 있습니다.

Redshift 및 PostgreSQL에 대한 라이브 연결은 UTC 시간을 반환하도록 설계되었습니다. 이는 두 데이터 원본에서 날짜/시간 및 표준 시간대 오프셋이 처리되는 방식이 서로 다르기 때문입니다.

 

추가 정보

향후 제품 릴리스에 이 개선 사항을 포함하도록 지지 의견을 제출하려면 다음 커뮤니티 아이디어에 한 표를 행사하십시오. Timezone conversion support(표준 시간대 변환 지원).

이 문서로 문제가 해결되었습니까?