日付と時間関数

日付と時間関数は、DATEおよびDATETIMEに基づいてデータを操作します。

関数 説明 構文

CURRENT_Date

CURRENT_DATE

現在の日付を返します。

日付はOracle BIを実行しているシステムによって決定されます。

CURRENT_DATE

CURRENT_TIME

CURRENT_TIME(3)

たとえば、HH:MM:SS.SSSなど、指定された精度の桁数で現在の時刻を返します。

引数の指定がない場合は、デフォルトの精度を返します。

CURRENT_TIME(expr)

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP(3)

指定された精度の桁数で現在の日付/タイムスタンプを返します。

CURRENT_TIMESTAMP(expr)

DAYNAME

DAYNAME(Order_Date)

指定された日付式について、どの曜日かを示す名前を返します。

DAYNAME(expr)

DAYOFMONTH

DAYOFMONTH(Order_Date)

指定された日付式について、1か月のうちのどの日付かを示す数値を返します。

DAYOFMONTH(expr)

DAYOFWEEK

DAYOFWEEK(Order_Date)

指定された日付式について、どの曜日かを示す1から7の数値を返します。たとえば、1は常に日曜に対応し、2は月曜に対応し、同様の要領で7を返す土曜まであります。

DAYOFWEEK(expr)

DAYOFYEAR

DAYOFYEAR(Order_Date)

指定された日付式について、年の通算日に対応する数字(1から366)を返します。

DAYOFYEAR(expr)

DAY_OF_QUARTER

DAY_OF_QUARTER(Order_Date)

指定された日付式について、四半期の通算日に対応する数字(1から92)を返します。

DAY_OF_QUARTER(expr)

HOUR

HOUR(Order_Time)

指定された時刻式について、時に対応する数字(0から23)を返します。たとえば、0は午前12時に対応し、23は午後11時に対応します。

HOUR(expr)

MINUTE

MINUTE(Order_Time)

指定された時刻式について、分に対応する数字(0から59)を返します。

MINUTE(expr)

MONTH

MONTH(Order_Time)

指定された日付式について、月に対応する数字(1から12)を返します。

MONTH(expr)

MONTHNAME

MONTHNAME(Order_Time)

指定された日付式について、月の名前を返します。

MONTHNAME(expr)

MONTH_OF_QUARTER

MONTH_OF_QUARTER(Order_Date)

指定された日付式について、四半期の通算月に対応する数字(1から3)を返します。

MONTH_OF_QUARTER(expr)

NOW

NOW()

現在のタイムスタンプを返します。NOW関数は、CURRENT_TIMESTAMP関数と同じです。

NOW()

QUARTER_OF_YEAR

QUARTER_OF_YEAR(Order_Date)

指定された日付式について、年の四半期に対応する数字(1から4)を返します。

QUARTER_OF_YEAR(expr)

SECOND

SECOND(Order_Time)

指定された時刻式について、秒に対応する数字(0から59)を返します。

SECOND(expr)

TIMESTAMPADD

TIMESTAMPADD(SQL_TSI_MONTH, 12,Time."Order Date")

指定された間隔の数をタイムスタンプに加算して、単一のタイムスタンプを返します。

間隔のオプションは、SQL_TSI_SECONDSQL_TSI_MINUTESQL_TSI_HOURSQL_TSI_DAYSQL_TSI_WEEKSQL_TSI_MONTHSQL_TSI_QUARTERSQL_TSI_YEARです

TIMESTAMPADD(interval, expr, timestamp)

TIMESTAMPDIFF

TIMESTAMPDIFF(SQL_TSI_MONTH, Time."Order Date",CURRENT_DATE)

2つのタイムスタンプ間の指定された間隔の合計数を返します。

TIMESTAMPADDと同じ間隔を使用します。

TIMESTAMPDIFF(interval, expr, timestamp2)

WEEK_OF_QUARTER

WEEK_OF_QUARTER(Order_Date)

指定された日付式について、四半期の通算週に対応する数字(1から13)を返します。

WEEK_OF_QUARTER(expr)

WEEK_OF_YEAR

WEEK_OF_YEAR(Order_Date)

指定された日付式について、年の通算週に対応する数字(1から53)を返します。

WEEK_OF_YEAR(expr)

YEAR

YEAR(Order_Date)

指定された日付式の年を返します。

YEAR(expr)

日付関数の使用に関するヒント

ここでは、ワークブックで日付関数を使用して会計期間の計算や、文字列から日付への変換、特定のタイム・ゾーンの日時の表示、時間の経過による差異の計算を行う際に、結果を最善のものにするためのヒントをいくつかご紹介します。

会計年度、会計四半期、会計月の計算:

サブジェクト領域には通常、時間ディメンションがあるため、会計四半期や会計月、会計週など、事前に構成された期間を使用できます。存在するのが日付フィールドのみの場合は、日付関数を使用すると、これらの期間を自分で計算できます。

次の例では、会計四半期を計算しています:

'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を挿入(列名の前に挿入し、続けて、列名の後ろに使用する日付書式を追加)し、「ステップの追加」をクリックします。
    GUID-ADBD035B-A62A-4DED-8768-553365BAABFE-default.pngの説明が続きます
    .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を前週比および前月比に使用することができます。
  • これらの例は、通常または一般的なカレンダで利用できます。会計月や会計四半期が必要な場合は、TIMESTAMPADDではなく、リポジトリ変数を計算に使用します。または、これと「会計年度、会計四半期、会計月の計算」のヒントを組み合せます。
  • 一部のサブジェクト領域には、PY (前年)やPQ (前四半期)など、事前に計算された過去Xのメジャーが含まれており、時間の経過による差異の計算に使用できます。
  • かわりに、AGO、PERIODROLLINGおよびTODATEのTIME SERIES関数を使用できます。時系列関数を参照してください。