設定時間戳記

在 Oracle Analytics 中,管理員會在系統設定值中設定用於計算日期和時間的預設時區。此全域設定適用於所有計算式。本主題說明如果您想在特定計算式中使用不同的時間戳記,如何使用 TIMESTAMPADD 函數指定另一個時區。

在系統設定值中設定計算式的預設時區

Oracle Analytics Cloud 的系統時間預設為 UTC 時間。下列函數使用 UTC 時間或日期傳回值:
  • CURRENT_DATE
  • CURRENT_TIME()
  • CURRENT_TIMESTAMP()
  • NOW()

您可以管理員的身分使用主控台中進階系統設定值底下的日期計算的預設時區選項,變更計算式中使用的時間戳記。請從下拉式清單中選取所需的時區,然後套用變更以讓新值生效。

以下為 GUID-8DB3356D-CD0C-471F-ACA2-9151598FAB51-default.png 的說明
.png

如需全域時區設定值的詳細資訊,請參閱系統設定值 - 格式選項

在計算式中對時間戳記使用特定時區

若要在計算式中產生與系統設定值不同的時間戳記,請使用 TIMESTAMPADD 函數搭配 CURRENT_TIMESTAMP()NOW()。基本的 TIMESTAMPADD 計算式為:

TIMESTAMPADD(SQL_TSI_<<interval>>, <<integer expression>>, <<timestamp expression>>)

對於時間戳記計算式,HOUR 是間隔,時差則是 UTC 與所回報時區之間的時數差異。例如:

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

此計算式會以美國山區時間傳回目前的時間戳記。您可在邏輯表格來源中將新的時間戳記資料欄建立為衍生資料欄,或將它直接對應到資料庫。其差別在於執行計算式的位置為 Oracle Analytics 還是資料庫。下圖顯示「表示式產生器 - 表示式」對話方塊中直接對應到資料庫的計算式。

以下為 GUID-27A25D1D-56A1-4C02-9FC2-106F9BAFBE71-default.jpg 的說明
.jpg

當預設時區設為 UTC 時,CURRENT_DATE 函數無法在當日某些時段傳回相對於使用者時區的正確日期。例如,UTC 時間為午夜時,在時差期間當地日期會與 UTC 日期不符。

在此情況下,只要將時間戳記計算轉換成日期,就能解決此問題。例如:

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

下圖顯示「表示式產生器 - 衍生的邏輯資料欄」對話方塊中建立為衍生資料欄的計算式。

以下為 GUID-49CFA011-ED91-477F-AE42-7CEE3D090E34-default.jpg 的說明
.jpg

對於唯一或單一報表,您可以在資料視覺化或傳統分析的報表層級建立時間戳記計算式。如果您打算重複使用計算式,比較簡單的做法是在語意模型 (或 RPD 檔案) 中,將計算式定義為資料欄。

如需本主題中所提及函數的詳細資訊,請參閱日期與時間函數時間序列函數。