日付と時間関数は、DATE
およびDATETIME
に基づいてデータを操作します。
関数 | 例 | 説明 | 構文 |
---|---|---|---|
CURRENT_Date |
|
現在の日付を返します。 日付はOracle BIを実行しているシステムによって決定されます。 |
|
CURRENT_TIME |
|
たとえば、HH:MM:SS.SSSなど、指定された精度の桁数で現在の時刻を返します。 引数の指定がない場合は、デフォルトの精度を返します。 |
|
CURRENT_TIMESTAMP |
|
指定された精度の桁数で現在の日付/タイムスタンプを返します。 |
|
DAYNAME |
|
指定された日付式について、どの曜日かを示す名前を返します。 |
|
DAYOFMONTH |
|
指定された日付式について、1か月のうちのどの日付かを示す数値を返します。 |
|
DAYOFWEEK |
|
指定された日付式について、どの曜日かを示す1から7の数値を返します。たとえば、1は常に日曜に対応し、2は月曜に対応し、同様の要領で7を返す土曜まであります。 |
|
DAYOFYEAR |
|
指定された日付式について、年の通算日に対応する数字(1から366)を返します。 |
|
DAY_OF_QUARTER |
|
指定された日付式について、四半期の通算日に対応する数字(1から92)を返します。 |
|
HOUR |
|
指定された時刻式について、時に対応する数字(0から23)を返します。たとえば、0は午前12時に対応し、23は午後11時に対応します。 |
|
MINUTE |
|
指定された時刻式について、分に対応する数字(0から59)を返します。 |
|
MONTH |
|
指定された日付式について、月に対応する数字(1から12)を返します。 |
|
MONTHNAME |
|
指定された日付式について、月の名前を返します。 |
|
MONTH_OF_QUARTER |
|
指定された日付式について、四半期の通算月に対応する数字(1から3)を返します。 |
|
NOW |
|
現在のタイムスタンプを返します。 |
|
QUARTER_OF_YEAR |
|
指定された日付式について、年の四半期に対応する数字(1から4)を返します。 |
|
SECOND |
|
指定された時刻式について、秒に対応する数字(0から59)を返します。 |
|
TIMESTAMPADD |
|
指定された間隔の数をタイムスタンプに加算して、単一のタイムスタンプを返します。 間隔のオプションは、SQL_TSI_SECOND、SQL_TSI_MINUTE、SQL_TSI_HOUR、SQL_TSI_DAY、SQL_TSI_WEEK、SQL_TSI_MONTH、SQL_TSI_QUARTER、SQL_TSI_YEARです |
|
TIMESTAMPDIFF |
|
2つのタイムスタンプ間の指定された間隔の合計数を返します。 TIMESTAMPADDと同じ間隔を使用します。 |
|
WEEK_OF_QUARTER |
|
指定された日付式について、四半期の通算週に対応する数字(1から13)を返します。 |
|
WEEK_OF_YEAR |
|
指定された日付式について、年の通算週に対応する数字(1から53)を返します。 |
|
YEAR |
|
指定された日付式の年を返します。 |
|
ここでは、ワークブックで日付関数を使用して会計期間の計算や、文字列から日付への変換、特定のタイム・ゾーンの日時の表示、時間の経過による差異の計算を行う際に、結果を最善のものにするためのヒントをいくつかご紹介します。
会計年度、会計四半期、会計月の計算:
サブジェクト領域には通常、時間ディメンションがあるため、会計四半期や会計月、会計週など、事前に構成された期間を使用できます。存在するのが日付フィールドのみの場合は、日付関数を使用すると、これらの期間を自分で計算できます。
次の例では、会計四半期を計算しています:
'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')
文字列から日付への変換:
青で列の名前が入力されているテキスト・ボックスに、To_DateTimeを挿入(
列名の前に挿入し、続けて、列名の後ろに使用する日付書式を追加)
し、「ステップの追加」をクリックします。
.pngの説明
「編集」オプションを使用して日付変換関数を作成する際は、Allow_Variable_Digits
を使用して、1桁か2桁の数値の列の値を処理することや、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 display as percentage
ノート:
SQL_TSI_DAY
が使用されていますが、かわりに、WEEKとMONTHを前週比および前月比に使用することができます。