在時戳加上指定的間隔次數,並傳回單一時戳。
間隔選項包括:
SQL_TSI_SECOND
、
SQL_TSI_MINUTE
、
SQL_TSI_HOUR
、
SQL_TSI_DAY
、
SQL_TSI_WEEK
、
SQL_TSI_MONTH
、
SQL_TSI_QUARTER
、
SQL_TSI_YEAR
TIMESTAMPADD(interval, expr, timestamp)
以下是在工作簿中使用日期函數計算會計期間、將字串轉換為日期、以特定時區顯示日期與時間以及計算一段時間的差異時,取得最佳結果的一些秘訣。
計算會計年度、季別和月份
:
主題區域一般都有時間維度,因此您可以使用預先設定的期間,例如會計季別、會計月份和會計週別。如果您只有日期欄位,那麼您便可使用日期函數自行計算這些期間。
以下範例計算會計季別:
'FY'||cast(YEAR(TIMESTAMPADD(SQL_TSI_MONTH, 7,<date field>)) as char)||'Q'||cast(QUARTER(TIMESTAMPADD(SQL_TSI_MONTH, 7,<same date field>)) as char)
以下範例計算會計年度與月份:
'FY'||cast(YEAR(TIMESTAMPADD(SQL_TSI_MONTH, 7,<date field>)) as char)||cast(MONTHNAME(<same date field>) as char)
||
用於將值串連在一起。
cast (xxx(date) as char)
會擷取日期欄位的某個部分。
TIMESTAMPADD
會在日期增加 (或減去) 期間。本範例使用參數值 SQL_TSI_MONTH 增加月份。
以上的計算式在表格中可正常運作,但在篩選中使用時,傳回值之間的間距看起來可能會有點奇怪。在此情況下,請參考以下範例,使用更清晰但複雜的計算式:
'FY'||evaluate ('to_char(%1,%2)'as char,(EVALUATE('add_months(%1,%2)' as date,<date field>,7)),'YY')||'-Q'||evaluate ('to_char(%1,%2)'as char,(EVALUATE('add_months(%1,%2)' as date,<same date field>,7)),'Q')
'FY'||evaluate ('to_char(%1,%2)'as char,(EVALUATE('add_months(%1,%2)' as date,<date field>,7)),'YY')||'-'||evaluate ('to_char(%1,%2)'as char,<same date field>,'MON')
將字串轉換為日期
:
Oracle Analytics 會分析您的資料,並提供擷取及轉換日期的增強建議。如果您需要自行將字串轉換為日期,請參考以下提示。
在工作簿設計工具中,瀏覽至資料窗格中要轉換的資料欄,對其按一下滑鼠右鍵並選取
轉換為日期
。設定日期,然後按一下
新增步驟
。
在工作簿設計工具中,瀏覽至資料窗格中要轉換的資料欄,對其按一下滑鼠右鍵並選取
編輯
。設定日期,然後按一下
新增步驟
。
在包含資料欄名稱 (以藍色顯示) 的文字方塊中,於資料欄名稱前插入
To_DateTime(
,然後在資料欄名稱後加上要使用的日期格式,後面接著
)
,然後按一下
新增步驟
。
使用「編輯」選項建立日期轉換函數時,您也可以使用
Allow_Variable_Digits
處理包含一位數字或二位數字的資料欄值,並使用
Null_On_Error
引數捨棄不符合所需樣式的資料列。另請參閱 REPLACE 和 CAST,瞭解如何使用替代方式處理不符合所需樣式的資料。
請使用
To_DateTime()
的替代項 CAST(),變更值的資料類型。例如,
CAST(SalesDate AS DATE)
。
此外,請使用
取代
選項。在工作簿設計工具中,瀏覽至資料窗格中要轉換的資料欄,對其按一下滑鼠右鍵並選取
取代
。設定想要的取代類型,然後按一下
新增步驟
。
以特定時區顯示日期與時間欄位
:
請在資料庫中將 NEW_TIME 函數與 EVALUATE 搭配使用。例如:
evaluate ('new_time(%1,%2,%3)' as char, "DV - Pipeline and Forecast"."Opportunity"."Last Updated Date",'GMT','AST')
確定日期欄位包含時間元件。
計算一段時間的差異
:
若要以數字和百分比顯示現在與昨天之間的差異,請參考以下範例來建立計算式:
計算到昨天為止的計量:
filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
計算差異值:
Measure - filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
計算差異百分比:
1-(filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))/Measure
以百分比顯示
這些範例使用
SQL_TSI_DAY
,但您也可以選擇使用 WEEK 和 MONTH (逐週和逐月)。
這些範例適用於一般行事曆或自然曆。如果需有會計月份和季別,請在計算式中改用儲存區域變數,而不要使用 TIMESTAMPADD。或者,將此與
計算會計年度、季別和月份
提示結合使用。
部分主題區域包括預先計算的「上一 X」計量,例如 PY(上一年)、PQ(上一季),您可以使用這些計量來計算一段時間的差異。
或者,您可以使用 TIME SERIES 函數:AGO、PERIODROLLING 和 TODATE。請參閱
時間序列函數
。