ヘッダーをスキップ
Oracle® OLAP DMLリファレンス
11gリリース2 (11.2)
B61346-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

DATE_FORMAT

DATE_FORMATコマンドは、DATETIMETIMESTAMPTIMESTAMP_TZTIMESTAMP_LTZDSINTERVALまたはYMINTERVALのデータ型を持つオブジェクトの定義に、書式テンプレートを割り当てるコマンドです。

日時書式テンプレートは、文字列に格納された日時データの書式を記述するテンプレートです。このテンプレートによりデータベース内の値の内部表現が変更されることはありません。文字列を日付に変換する場合、Oracle OLAPがその文字列をどのように解釈するかがテンプレートで決定されます。


注意:

この文は、SQLの日時データ型に対応する日時データ型を持つオブジェクトについてのみ使用できます。OLAP DMLに特有である日付のみのデータ型を持つ時間ディメンションには使用できません

定義に日時書式テンプレートを割り当てるには、最新の定義または現行のセッション中に検討された定義である必要があります。そうでない場合は、最初にCONSIDER文を使用し、現行の定義にする必要があります。

構文

DATE_FORMAT [datetime_format_template]

パラメータ

datetime_format_template

1つ以上の日時書式要素で構成される式で、この式によって現行オブジェクトの値の入力や表示に使用する書式を指定します。テンプレートで指定できる要素については、表9-4「日時の書式要素」を参照してください。テンプレートを作成する際は、次の点に注意してください。

  • 日時書式テンプレートの全長は、22文字を超えることはできません。

  • 入力書式モデルの場合、同じ書式項目は2回指定できません。また、類似した情報を表す書式項目を組み合せることもできません。たとえば、'SYYYY'と'BC'を同一の書式文字列内で使用することはできません。

  • 日時の書式要素には、TO_*日時ファンクションで使用できないものもあります(表2-7「日時フィールドと値」を参照)。

  • 日時の書式要素であるFFTZDTZHTZMおよびTZRは、タイムスタンプや期間の書式モデルで使用できますが、元のDATETIME書式モデルでは使用できません。

  • 日時の書式要素の多くは、特定の長さに満たない場合、空白が追加されます。

templateを省略した場合、現行定義の既存の日付書式テンプレートが削除され、デフォルトの日時書式テンプレートが使用されます。(デフォルトの日時書式テンプレートについては、「デフォルトの日時書式テンプレート」を参照してください。)

表9-4 日時の書式要素

要素 TO_*日時ファンクションでの使用 説明
-
/
,
.
;
:
"text"

句読点と引用符付きテキストは、結果で複製されます。

AD
A.D.

ピリオド付きまたはピリオドなしで西暦を示します。

AM
A.M.

ピリオド付きまたはピリオドなしで正午標識を示します。

BC
B.C.

ピリオド付きまたはピリオドなしで紀元前を示します。

CC
SCC

不可

世紀。

  • 4桁の年の下2桁が01から99(01および99を含む)の場合、世紀はその年の上2桁に1を加えた値になります。

  • 4桁の年の下2桁が00の場合、世紀はその年の上2桁と等しい値になります。

たとえば、2002は21を返し、2000は20を返します。

D

週における日付(1から7)。

DAY

曜日。この要素に使用する言語で最長の曜日の幅に満たない場合は空白を追加します。

DD

月における日付(1から31)。

DDD

年における日付(1から366)。

DL

Oracle DatabaseのDATETIME書式の拡張である長い日付書式で値を返します(NLS_DATE_FORMATパラメータの現行値)。日付の構成要素(曜日や月など)の表示が、NLS_TERRITORYパラメータおよびNLS_LANGUAGEパラメータによって決まるようにします。たとえば、AMERICAN_AMERICAロケールでは、'fmDay, Month dd, yyyy'形式で指定したのと同じです。GERMAN_GERMANYロケールでは、'fmDay, dd. Month yyyy'形式で指定したのと同じです。

制限: この書式は、TS要素でのみ、空白で区切って指定可能です。

DS

短い日付書式で値を返します。日付の構成要素(曜日や月など)の表示が、NLS_TERRITORYパラメータおよびNLS_LANGUAGEパラメータによって決まるようにします。たとえば、AMERICAN_AMERICAロケールでは、'MM/DD/RRRR'形式で指定したのと同じです。ENGLISH_UNITED_KINGDOMロケールでは、'DD/MM/RRRR'形式で指定したのと同じです。

制限: この書式は、TS要素でのみ、空白で区切って指定可能です。

DY

曜日の省略形。

E

不可

年号(日本の元号暦、台湾暦およびタイ仏教暦)の省略形。

EE

不可

年号(日本の元号暦、台湾暦およびタイ仏教暦)の完全形。

FF [1..9]

小数秒で、基数文字は印刷されません(X書式要素を使用して基数文字を追加します)。FFの後に1から9の数字を使用して、戻される日時値の小数秒部分の桁数を指定します。数字を指定しない場合は、日時データ型に指定された精度またはデータ型のデフォルトの精度が使用されます。

例: 'HH:MI:SS.FF'

SELECT TO_CHAR(SYSTIMESTAMP, 'SS.FF3') from dual;

FM

先行および後続する空白を持たない値を返します。

参照: 『Oracle Database SQL言語リファレンス』の書式モデル修飾子についての説明

FX

文字データと書式モデルの完全一致を必要とします。

参照: 『Oracle Database SQL言語リファレンス』の書式モデル修飾子についての説明

HH

1日の時間(1から12)。

HH12

不可

1日の時間(1から12)。

HH24

1日の時間(0から23)。

IW

不可

ISO規格に基づく、年における週(1から52または1から53)。

IYY
IY
I

不可

ISO年の最後の3桁、2桁または1桁。

IYYY

不可

ISO規格に基づく4桁の年。

J

ユリウス日(紀元前4712年1月1日からの経過日数)。Jで指定する数字は、整数である必要があります。

MI

分(0から59)。

MM

月(01から12。1月は01)。

MON

月の名前の省略形。

MONTH

月の名前。この要素に使用する言語で最長の月名の幅に満たない場合は空白を追加します。

PM
P.M.

不可

ピリオド付きまたはピリオドなしで正午標識を示します。

Q

不可

年の四半期(1、2、3、4。1月から3月は1)。

RM

ローマ数字による月(IからXII。1月はI)。

RR

20世紀の日付を、2桁のみ使用して21世紀に格納します。

参照: 『Oracle Database SQL言語リファレンス』のRR日時書式要素についての説明

RRRR

年を丸めます。4桁または2桁のいずれも入力可能です。2桁の場合、RRと同じ値が返されます。この機能を使用しない場合は、4桁の年を入力します。

SS

秒(0から59)。

SSSSS

午前0時から経過した秒(0から86399)。

TS

短い時間書式で値を返します。時間の構成要素(時間や分など)の表示が、NLS_TERRITORY初期化パラメータおよびNLS_LANGUAGE初期化パラメータによって決まるようにします。

制限: この書式は、DLまたはDS要素でのみ、空白で区切って指定可能です。

TZD 

夏時間の情報。TZD値は、夏時間の情報を含むタイムゾーン文字列の省略形。TZRで指定した地域と一致している必要があります。

例: PST(アメリカ太平洋標準時)、PDT(アメリカ太平洋夏時間)。

TZH

タイムゾーンの時間。(TZM書式要素を参照。)

例: 'HH:MI:SS.FFTZH:TZM'

TZM

タイムゾーンの分。(TZH書式要素を参照。)

例: 'HH:MI:SS.FFTZH:TZM'

TZR

タイムゾーン地域の情報。この値は、データベースでサポートされるタイムゾーン地域である必要があります。

例: US/Pacific

WW

不可

年における週(1から53)。ここで、第1週は、特定の年の最初の日から始まり、その年の7日目で終わります。

W

不可

月における週(1から5)。ここで、第1週は、特定の月の最初の日から始まり、7日目で終わります。

X

ローカル基数文字。

例: 'HH:MI:SSXFF'

Y,YYY

指定の位置にカンマを付けた年。

YEAR
SYEAR

不可

スペルアウトした年。Sの場合、紀元前の日付の先頭にマイナス記号(-)が付加されます。

YYYY
SYYYY

4桁の年。Sの場合、紀元前の日付の先頭にマイナス記号が付加されます。

YYY
YY
Y

年の最後の3桁、2桁または1桁。


使用上の注意

デフォルトの日時書式テンプレート

デフォルトの日時書式テンプレートは、初期化パラメータNLS_DATE_FORMATで明示的に指定されるか、または初期化パラメータNLS_TERRITORYで暗黙的に指定されます。セッションのデフォルトの日時書式は、ALTER SESSION文で変更できます。

ISO規格の日付書式要素

Oracleでは、ISO規格に従って、日時書式要素IYYY、IYY、IY、IおよびIWによって返された値が計算されます。

これらの値と日時書式要素YYYY、YYY、YY、YおよびWWによって戻される値の相違点については、『Oracle Databaseグローバリゼーション・サポート・ガイド』の「グローバリゼーション・サポート」の章を参照してください。

RR日時書式要素

RR日時書式要素は、YY日時書式要素に似ていますが、より柔軟に、他の世紀に日付の値を格納できます。RR日時書式要素では、年の下2桁のみを指定することにより、20世紀の日付を21世紀に格納できます。

TO_DATEファンクションとYY日時書式要素を使用する場合、返される年の上2桁は常に、現在の年と同一になります。かわりにRR日時書式要素を使用する場合、戻り値の世紀は、指定した2桁の年および現在の年の下2桁によって異なります。

詳細は次のとおりです。

  • 指定した2桁の年が00から49である場合、次のようになります。

    • 現在の年の下2桁が00から49の場合、返される年の上2桁は、現在の年と同一になる。

    • 現在の年の下2桁が50から99の場合、返される年の上2桁は、現在の年の上2桁に1を加えた値になる。

  • 指定した2桁の年が50から99である場合、次のようになります。

    • 現在の年の下2桁が00から49の場合、返される年の上2桁は、現在の年の上2桁から1を引いた値になる。

    • 現在の年の下2桁が50から99の場合、返される年の上2桁は、現在の年と同一になる。

日時書式要素の接尾辞

表9-5「日時書式要素の接尾辞」に、日時書式要素に追加できる接尾辞を示します。

表9-5 日時書式要素の接尾辞

接尾辞 意味 要素の例 値の例

TH

序数

DDTH

4TH

SP

スペルアウトした数字

DDSP

FOUR

SPTHまたはTHSP

スペルアウトした序数

DDSPTH

FOURTH


日付書式要素の接尾辞を使用する際は、次の点に注意してください。

  • 前述の接尾辞のいずれかを日時書式要素に追加する場合、戻り値は必ず英語になります。

  • 日時の接尾辞は、書式の出力にのみ有効です。データベースに日付を挿入するためには使用できません。

日時書式要素およびグローバリゼーション・サポート

一部の日時書式要素の機能は、Oracle Databaseを使用している国や言語によって異なります。たとえば、次に示す日時書式要素は、スペルアウトした値を返します。

  • MONTH

  • MON

  • DAY

  • DY

  • BC、AD、B.C.またはA.D.

  • AM、PM、A.M.またはP.M.

前述の値が返される際に使用される言語は、初期化パラメータNLS_DATE_LANGUAGEで明示的に指定されるか、または初期化パラメータNLS_LANGUAGEで暗黙的に指定されます。YEARおよびSYEARの日時書式要素で返される値は常に英語です。

日時書式要素Dは、週の何日目であるか(1から7)を返します。週の第1日目は、初期化パラメータNLS_TERRITORYで暗黙的に指定されます。


関連項目:

グローバリゼーション・サポートの初期化パラメータの詳細は、『Oracle Databaseリファレンス』および『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。

日付書式要素の大文字

スペルアウトした単語、省略形またはローマ数字での大文字の使用方法は、対応する書式要素での大文字の使用方法に従います。たとえば、日時書式要素'DAY'の場合は'MONDAY'、'Day'の場合は'Monday'、'day'の場合は'monday'のように大文字が使用されます。

日時書式テンプレートの句読点および文字リテラル

日時書式テンプレートには、次の文字を含めることができます。

  • ハイフン、スラッシュ、カンマ、ピリオドおよびコロンなどの句読点

  • 二重引用符で囲んだ文字リテラル

これらの文字は、書式モデル内と同じ位置で戻り値に表示されます。

書式文字列では句読記号文字がある位置に、日付文字列で英数字が見つかった場合、Oracleはエラーを返します。たとえば、次の書式文字列ではエラーが返されます。

TO_CHAR (TO_DATE('0297','MM/YY'), 'MM/YY')

例9-75 オブジェクトの日時書式テンプレートの変更

次の文に示すように、デフォルトの日時書式テンプレートがDD_MON_RRであるとします。

SHOW NLS_DATE_FORMAT
DD-MON-RR

また、mydatetimeという変数を定義し、CURRENT_TIMESTAMPの値を割り当てるとします。

DEFINE mydatetime VARIABLE DATETIME
mydatetime = CURRENT_TIMESTAMP
 

mydatetimeの値についてのレポートには、次の値が表示されます。この値は、NLS_DATETIME FORMATの設定で決定された書式を持ちます。次のように指定された順で、日、月および年の値のみが表示されます。

REPORT mydatetime

MYDATETIME
-----------
02-FEB-07
 

ここで、次の文を発行することにより、mydatetimeの日付書式マップを変更します。

CONSIDER mydatetime
DATE_FORMAT MON-RRRR-DD-HH24
 

その結果、mydatetimeの値の表示に、24時間形式の時間が含まれます。

REPORT mydatetime

MYDATETIME
--------------
FEB-2007-02-10