17.10 - 使用上の注意 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - データ タイプおよびリテラル

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1143-171K-JPN
Language
日本語 (日本)

期間式は、CAST関数やTeradataキャスト構文を使用するか、フィールド モードの出力を形成するときに、文字列表現としてキャストできます。キャストする期間式に関連付けられた書式に書式化した文字列の最大長をLとします。結果の文字列は、期間式の開始境界と終了境界を表わす2つの文字列を含みます。それぞれの最大長はLであり、それぞれが単一引用符(' ')で囲まれ、カンマとスペース(, )で区切られ、左右の括弧[( )]で囲まれます。したがって、結果の文字列の最大長は2*L+8になります。 これが、例えば、形式が月の正式名称を含み、境界に対する特定の月が7月(July)の場合には、実際の長さがKとした場合、その長さは2*L+8より小さくなり、変換先タイプはCHARACTER(n)またはVARCHAR(n)となります。

  • nKに等しい場合、期間は長さがKの結果の文字列にキャストされます。
  • nKより大きく、変換先がVARCHAR(n)の場合、期間は長さがKの結果の文字列にキャストされます。
  • nKより大きく、ターゲットがCHARACTER(n)の場合、期間は結果の文字列にキャストされ、長さがnになるまで末尾の埋め込み文字が追加されます。
  • nKより小さく、セッションがANSIモードの場合、切り捨てエラーが報告されます。
  • nKより小さく、セッションがTeradataモードの場合、長さをnに切り捨てた文字列が返されます。

TIME要素タイプとTIMESTAMP要素タイプを持つPeriodデータ型のデータの場合、期間式のUTC値はデータの値のタイムゾーンに調整されます。また、データの値にタイムゾーンがない場合は、現在のセッションのタイムゾーンに調整されます。UTCからの変換の例外は、PERIOD(TIMESTAMP(n))値の終了境界がUNTIL_CHANGEDを表わすために使用される最大値と等しい場合です。この場合、値は変更されません。このような調整を行なっために、結果の終了境界が開始境界より小さいように見える場合がありますが、UTCでは終了境界は開始境界より大きくなっています。これが発生する理由は、TIMEデータ型の時間値が24時間単位でラップされる(つまり、時間値は「モジュール24」を使用して取得される)ためです。