ヘッダーをスキップ
Oracle OLAP DMLリファレンス
11g リリース1(11.1)
E05732-02
  目次へ
目次
索引へ
索引

戻る
戻る
 
次へ
次へ
 

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の数字を使用し、返された日時の値について小数秒部分の桁数を指定する。桁数を指定しない場合、Oracle Databaseは、日時データ型またはデータ型のデフォルトの精度を使用する。

例: '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桁によって異なります。

詳細は次のとおりです。

日時書式要素の接尾辞

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

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

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

TH

序数

DDTH

4TH

SP

スペルアウトした数字

DDSP

FOUR

SPTHまたはTHSP

スペルアウトした序数

DDSPTH

FOURTH


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

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

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

前述の値が返される際に使用される言語は、初期化パラメータ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-74 オブジェクトの日時書式テンプレートの変更

次の文に示すように、デフォルトの日時書式テンプレートが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