Konfigurowanie znaczników czasu

W Oracle Analytics administratorzy ustawiają domyślną strefę czasową, która jest używana na potrzeby obliczania wartości daty i godziny, w sekcji Ustawienia systemowe. To ustawienie globalne ma zastosowanie do wszystkich obliczeń. W tym temacie opisano, jak korzystać z funkcji TIMESTAMPADD, aby określić inną strefę czasową w przypadku, gdy użytkownik chce użyć innego znacznika czasu w konkretnym obliczeniu.

Ustawianie domyślnej strefy czasowej dla obliczeń w ustawieniach systemu

Domyślnie czas systemowy w Oracle Analytics Cloud jest oparty na czasie UTC. Poniższe funkcje zwracają wartości, używając godziny lub daty ze strefy czasowej UTC:
  • CURRENT_DATE
  • CURRENT_TIME()
  • CURRENT_TIMESTAMP()
  • NOW()

Użytkownik będący administratorem może zmienić znacznik czasu używany w obliczeniach, korzystając z opcji Domyślna strefa czasowa dla obliczeń związanych z datą dostępnej w konsoli w sekcji Zaawansowane ustawienia systemowe. Należy wybrać odpowiednią strefę czasową z listy rozwijanej i zastosować zmiany, aby nowa wartość zaczęła obowiązywać.

Opis "GUID-8DB3356D-CD0C-471F-ACA2-9151598FAB51-default.png" znajduje się poniżej
.png"

Więcej informacji dotyczących globalnych ustawień strefy czasowej można znaleźć w temacie Ustawienia systemowe - opcje formatu.

Używanie określonej strefy czasowej dla znaczników czasu w obliczeniach

Aby wygenerować w obliczeniach znacznik czasu inny niż określono w ustawieniach systemu, należy użyć funkcji TIMESTAMPADD w połączeniu z funkcją CURRENT_TIMESTAMP() lub NOW(). Podstawowe obliczenie z użyciem funkcji TIMESTAMPADD jest następujące:

TIMESTAMPADD(SQL_TSI_<<interwał>>, <<wyrażenie całkowitoliczbowe>>, <<wyrażenie znacznika czasu>>)

Podczas obliczania znaczników czasu wartość HOUR jest interwałem, a przesunięcie czasu jest wyrażoną w godzinach różnicą między strefą czasową UTC a strefą czasową, dla której ma zostać wykonane raportowanie. Na przykład:

TIMESTAMPADD(SQL_TSI_HOUR, -6,CURRENT_TIMESTAMP(5))

W wyniku tego obliczenia zwracany jest bieżący znacznik czasu ze strefy czasowej "USA - czas górski". Nową kolumnę znaczników czasu można utworzyć jako kolumnę pochodną w źródle tabeli logicznej albo zmapować ją bezpośrednio na bazę danych. Różnica polega na tym, gdzie jest wykonywane obliczanie - w Oracle Analytics czy w bazie danych. Na poniższym rysunku pokazano obliczenie zmapowane bezpośrednio na bazę danych w oknie dialogowym "Konstruktor wyrażeń - Wyrażenie".

Opis "GUID-27A25D1D-56A1-4C02-9FC2-106F9BAFBE71-default.jpg" znajduje się poniżej
.jpg"

Gdy jako domyślna strefa czasowa jest ustawiona strefa UTC, funkcja CURRENT_DATE nie zwróci prawidłowej daty (względem strefy czasowej użytkownika) dla pewnych godzin w ciągu dnia. Na przykład gdy w strefie czasowej UTC wypada północ, data lokalna nie jest zgodna z datą UTC przez okres o długości równej przesunięciu czasu.

Rzutowanie obliczania znacznika czasu jako daty powoduje rozwiązanie tego problemu. Na przykład:

cast(TIMESTAMPADD(SQL_TSI_HOUR, -6,CURRENT_TIMESTAMP) as date)

Na poniższym rysunku pokazano obliczenie utworzone jako kolumna pochodna w oknie dialogowym "Konstruktor wyrażeń - Pochodna kolumna logiczna".

Opis "GUID-49CFA011-ED91-477F-AE42-7CEE3D090E34-default.jpg" znajduje się poniżej
.jpg"

W przypadku raportów unikatowych czy też jednorazowych obliczenia znaczników czasu można tworzyć na poziomie raportu w wizualizacji danych lub klasycznej analizie. Jeśli planowane jest ponowne używanie obliczeń, często łatwiej jest zdefiniować je jako kolumny w modelu semantycznym (lub w pliku RPD).

Więcej informacji dotyczących funkcji wspomnianych w tym temacie można znaleźć w tematach Funkcje daty i godziny i Funkcje ciągów czasowych.