SQLプロシージャでCURRENT_TIME関数とCURRENT_TIMESTAMP関数を使用するための指針 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/jpx1556733107962.ditamap
dita:ditavalPath
ja-JP/jpx1556733107962.ditaval
dita:id
B035-1184
Product Category
Software
Teradata Vantage

CURRENT_TIME関数またはCURRENT_TIMESTAMP関数を含むプロシージャを作成する場合、Teradata Databaseにより、DBS制御パラメータSystemTimeZoneHourとSystemTimeZoneMinuteのローカル セッション タイムゾーン設定に基づいた関数の作成者の時刻またはタイムゾーンの値を使用して、プロシージャのコンパイル時の関数値が取り込まれます。

これらのパラメータの設定を調整してタイムゾーンを調整すると、プロシージャが起動される場所にかかわらず現地時間に合わせて調整されているCURRENT_TIME関数またはCURRENT_TIMESTAMP関数の現行値を返すために作成されたすべてのプロシージャで、意図した結果が返されません。

プロシージャを定期的に再コンパイルすることはできますが、それはこの問題を常に解決するわけではありません。

最善なのは、サイトのtdlocaledefファイルに適切なタイムゾーン文字列を挿入することです。この方法では、Teradata Databaseにより自動的に必要なタイムゾーンの変更が行なわれ、プロシージャ内のCURRENT_TIME関数とCURRENT_TIMESTAMP関数が常に適切な値を返すようになります。

有効なタイムゾーン文字列の全一覧については、タイムゾーン文字列を参照してください。