日付と時間関数
日付と時間関数は、DATE
およびDATETIME
に基づいてデータを操作します。
関数 | 例 | 説明 | 構文 |
---|---|---|---|
CURRENT_Date |
|
現在の日付を返します。 日付は、Oracle BIが実行されているシステムによって決定されます。 |
|
CURRENT_TIME |
|
指定した精度の桁数で現在の時刻を返します。たとえば: HH:MM:SS.SSS 引数を指定しない場合、関数はデフォルトの精度を返します。 |
|
CURRENT_TIMESTAMP |
|
現在の日付/タイムスタンプを指定された精度の桁数で返します。 |
|
DAYNAME |
|
指定された日付式の曜日名を返します。 |
|
DAYOFMONTH |
|
指定された日付式について、月の通算日に対応する数字を返します。 |
|
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(
を挿入し、列名の後に)
を付けて使用する日付書式を追加し、「ステップの追加」をクリックします。
「
図convert-string-date-3.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メジャーが含まれており、これを使用して時間の経過に伴う差異を計算できます。
- または、TIME SERIES関数を使用できます: AGO、PERIODROLLING、TODATE。 「時系列関数」を参照してください。