NLS_TIMESTAMP_TZ_FORMATは、TO_CHAR関数およびTO_TIMESTAMP_TZ関数で使用す るデフォルトのタイム・ゾーン付きのタイムスタンプ書式を定義します。この値は、次のよ うに引用符で囲む必要があります。
NLS_TIMESTAMP_TZ_FORMAT = 'YYYY-MM-DD HH:MI:SS.FF TZH:TZM' 次に例を示します。
TO_TIMESTAMP_TZ('2000-08-20, 05:00:00.55 America/Los_Angeles', 'yyyy-mm-dd hh:mi:ss.ff TZR')
NLS_TIMESTAMP_TZ_FORMATの値を指定するには、その値を初期化パラメータ・ファイル に設定します。設定した値は、クライアントのクライアント環境変数として指定できます。
NLS_TIMESTAMP_TZ_FORMATの値は、初期化パラメータ・ファイルでその値を変更してイ ンスタンスを再起動すると、変更できます。また、ALTER SESSION SET文を使用すると、
セッション時にその値を変更できます。
データベースのタイム・ゾーン・パラメータ データベースのタイム・ゾーン・パラメータデータベースのタイム・ゾーン・パラメータ
データベースのタイム・ゾーン・パラメータ 次の項目を指定すると、特定のタイム・ゾー ンを持つデータベースを作成できます。
■ UTC(協定世界時、以前のグリニッジ標準時)との時差。次の例では、データベースの タイム・ゾーンを太平洋標準時(UTCより8時間遅れ)に設定します。
CREATE DATABASE ... SET TIME_ZONE = '-08:00 ';
■ タイム・ゾーン・リージョン。次の例も、データベースのタイム・ゾーンを米国での太 平洋標準時に設定します。
CREATE DATABASE ... SET TIME_ZONE = 'PST ';
有効なリージョン名のリストを参照するには、V$TIMEZONE_NAMESビューを問い合せます。
パラメータ・タイプ パラメータ・タイプパラメータ・タイプ
パラメータ・タイプ: 文字列 パラメータの有効範囲
パラメータの有効範囲パラメータの有効範囲
パラメータの有効範囲: 動的、初期化パラメータ、環境変数およびALTER SESSION デフォルト値
デフォルト値デフォルト値
デフォルト値: NLS_TERRITORYから導出 値の範囲
値の範囲値の範囲
値の範囲: 有効な日時書式マスク
関連項目 関連項目関連項目
関連項目: 日付書式要素とタイム・ゾーン書式の詳細は、『Oracle9i SQL リファレンス』を参照してください。
日付パラメータと時刻パラメータ
データベースのタイム・ゾーンが関連するのは、TIMESTAMPWITHLOCALTIMEZONE列の
みです。 Oracleでは、TIMESTAMP WITH LOCAL TIME ZONEのデータは、ディスクへの格納
時に、すべて正規化されます。SETTIME_ZONE句を指定しない場合は、サーバーのオペ レーティング・システムのタイム・ゾーンが使用されます。オペレーティング・システムの タイム・ゾーンが有効なOracleタイム・ゾーンでない場合、データベースのタイム・ゾー ンはUTCにデフォルト設定されます。
データベース作成後は、ALTERDATABASESETTIME_ZONE文を発行してから、データベー スを停止し、再起動することで、タイム・ゾーンを変更できます。次の例では、データベー スのタイム・ゾーンをロンドン時間に設定します。
ALTER DATABASE SET TIME_ZONE = 'Europe/London ';
データベースのタイム・ゾーンを検索するには、次の例に示すように、DBTIMEZONE関数を 使用します。
SELECT dbtimezone FROM dual;
DBTIME ---08:00
セッションのタイム・ゾーン・パラメータ セッションのタイム・ゾーン・パラメータセッションのタイム・ゾーン・パラメータ
セッションのタイム・ゾーン・パラメータ ユーザー・セッションのタイム・ゾーン・パラ メータを変更するには、ALTERSESSION文を発行します。
■ O/Sのローカル・タイム・ゾーン ALTER SESSION SET TIME_ZONE = local;
■ データベースのタイム・ゾーン
ALTER SESSION SET TIME_ZONE = DBTIMEZONE;
■ 絶対時差
ALTER SESSION SET TIME_ZONE = '-05:00';
■ 名前付きリージョン
ALTER SESSION SET TIME_ZONE = 'America/New_York';
カレンダ・パラメータ
環境変数ORA_SDTZを使用すると、クライアント・セッションのデフォルトのタイム・ゾー ンを設定できます。この変数は、DB_TZ、OS_TZ、タイム・ゾーン・リージョンまたは数値 タイム・ゾーン・オフセットなどの入力を取得します。 ORA_SDTZがDB_TZに設定されてい る場合、セッションのタイム・ゾーンは、データベースのタイム・ゾーンと同じになりま
す。 ORA_SDTZがOS_TZに設定されている場合、セッションのタイム・ゾーンは、オペレー
ティング・システムのタイム・ゾーンと同じになります。ORA_SDTZが無効なOracleタイ ム・ゾーンに設定されている場合は、オペレーティング・システムのタイム・ゾーンが、
セッションのデフォルト・タイム・ゾーンとして使用されます。オペレーティング・システ ムのタイム・ゾーンが有効なOracleタイム・ゾーンでない場合、セッションのタイム・
ゾーンは、UTCにデフォルト設定されます。ユーザー・セッションのタイム・ゾーンを検索 するには、次の例に示すように、SESSIONTIMEZONE関数を使用します。
SELECT sessiontimezone FROM dual;
SESSIONTIMEZONE -08:00
カレンダ・パラメータ カレンダ・パラメータ カレンダ・パラメータ カレンダ・パラメータ
Oracleでは、パラメータを使用してカレンダに関連する項目を制御できます。
カレンダ書式 カレンダ書式 カレンダ書式 カレンダ書式
地域別に格納されるカレンダ情報の種類は、次のとおりです。
■ 週の最初の曜日
■ 年の最初の暦週
■ 1年の日数と月数
■ 紀元の年
週の最初の曜日 週の最初の曜日 週の最初の曜日 週の最初の曜日
一部の文化では、日曜日を最初の曜日とみなしています。また、月曜日を最初の曜日とみな す文化もあります。ドイツのカレンダは、月曜日から始まります。
関連項目関連項目関連項目
関連項目: 第12章「ロケール・データのカスタマイズ」
カレンダ・パラメータ
年の最初の暦週 年の最初の暦週 年の最初の暦週 年の最初の暦週
ドイツを含む多くの国々では、週を使用してスケジューリング、計画および会計処理を行い
ます。 Oracleでは、この規則をサポートしています。
ISO規格では、ISO週番号に関連する年が、暦年と異なることがあります。たとえば、1988 年1月1日は、1987年のISO週番号53になります。週は、常に月曜日に始まって日曜日に 終わります。
■ 1月1日が金曜日、土曜日または日曜日の場合、1月1日を含む週は、その週の大半の日 が前年に属するため、前年の最後の週になります。
■ 1月1日が月曜日、火曜日、水曜日または木曜日の場合は、1月1日を含む週は、その週 の大半の日が新しい年に属するため、新しい年の最初の週になります。
ISO規格をサポートするために、ISO週番号を戻すIW書式要素が用意されています。
次に、最初の週に4日間以上ある場合の一般的な例を示します。
表表表
表3-5 週の最初の曜日週の最初の曜日週の最初の曜日週の最初の曜日
März 1998
Mo Di Mi Do Fr Sa So
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
表表表
表3-6 曜日(例曜日(例曜日(例曜日(例1))))
1月月月月 1998
月 火 水 木 金 土 日
1 2 3 4 <= 1998年の第1週
5 6 7 8 9 10 11 <= 1998年の第2週
12 13 14 15 16 17 18 <= 1998年の第3週
19 20 21 22 23 24 25 <= 1998年の第4週
26 27 28 29 30 31 <= 1998年の第5週
カレンダ・パラメータ
次に、最初の週が3日間以下である場合の一般的な例を示します。
1 年の日数と月数 年の日数と月数 年の日数と月数 年の日数と月数
Oracleでは、デフォルトのグレゴリオ暦の他に、次の6つの暦法をサポートしています。
■ Japanese Imperial(日本の元号暦)-月数と日数はグレゴリオ暦と同じですが、年は各
元号ごとに始まります。
■ ROC Official(台湾暦)-月数と日数はグレゴリオ暦と同じですが、年は台湾の建国年
から始まります。
■ Persian(ペルシャ暦)-月数は12で、各月の日数は同じ長さです。
■ Thai Buddha(タイ仏教暦)-仏教のカレンダを使用します。
■ Arabic Hijrah(イスラム歴)-月数は12で、日数は354または355です。
■ English Hijrah(英語版イスラム歴)-月数は12で、日数は354または355です。
紀元の年 紀元の年 紀元の年 紀元の年
イスラム暦は、ヒジュラ紀元の年から始まります。日本の元号暦は、天皇が即位した最初の 年から始まります。たとえば、1998年は平成10年になります。ただし、日本では、グレゴリ オ暦も広く理解されているので、1998年を表現するために98年と平成10年の両方が使用さ れます。
表表表
表3-7 曜日(例曜日(例曜日(例曜日(例2))))
1月月月月 1999
月 火 水 木 金 土 日
1 2 3 <= 1998年の第53週
4 5 6 7 8 9 10 <= 1999年の第1週
11 12 13 14 15 16 17 <= 1999年の第2週
18 19 20 21 22 23 24 <= 1999年の第3週
25 26 27 28 29 30 31 <= 1999年の第4週
カレンダ・パラメータ