在 Oracle Analytics 中,管理員會在「系統設定值」中設定用於計算日期和時間的預設時區,而且此全域設定適用於所有計算式。如果您想在特定計算式中使用不同的時間戳記,可以使用 TIMESTAMPADD
函數指定所需的時區。
在系統設定值中設定計算式的預設時區
CURRENT_DATE
CURRENT_TIME()
CURRENT_TIMESTAMP()
NOW()
管理員可以使用主控台中系統設定值底下的日期計算的預設時區選項,變更計算式中使用的時間戳記。請從下拉式清單中選取所需的時區,然後套用變更以讓新值生效。
.jpg
如需全域時區設定值的詳細資訊,請參閱系統設定值 - 格式選項。
在計算式中對時間戳記使用特定時區
若要在計算式中產生與系統設定值不同的時間戳記,請使用 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 還是資料庫。在此處,計算式直接對應到資料庫:
在另一種情況下,當預設時區設為 UTC 時,CURRENT_DATE
函數無法在當日某些時段傳回相對於使用者時區的正確日期。例如,UTC 時間為午夜時,在時差期間當地日期會與 UTC 日期不符。
在此情況下,只要將時間戳記計算轉換成日期,就能解決此問題。例如:
cast(TIMESTAMPADD(SQL_TSI_HOUR, -6,CURRENT_TIMESTAMP) as date)
在此處,計算式會被建立為衍生資料欄:
對於一次性報表,您可以在資料視覺化或傳統分析的報表層級建立時間戳記計算式。如果您打算重複使用計算式,比較簡單的做法是在語意模型 (或 RPD 檔案) 中,將計算式定義為資料欄。