format_timestamp関数

format_timestamp関数は、指定されたパターンおよびタイムゾーンに従ってタイムスタンプを文字列に変換します。

構文:
STRING format_timestamp(<timestamp>,[pattern [, timezone])
セマンティクス:
  • timestamp: timestamp引数は、TIMESTAMP値またはTIMESTAMP型にキャストできる値を取ります。
  • pattern: pattern引数はオプションで、STRINGデータ型を入力として使用します。タイムゾーン記号'z'、'zz'、'zzz'および'v'を除く、Java DateTimeFormatterクラスのすべてのパターン記号をサポートします。サポートされるタイムゾーン記号の詳細は、次の表を参照してください。
    記号 意味 表現
    V タイムゾーンID ゾーンID America/Los_Angeles; Z; -08:30
    O ローカライズされたゾーンオフセット オフセット-O GMT+8; GMT+08:00; UTC-08:00
    X ゼロのゾーンオフセット'Z' オフセット-X Z; -08; -0830; -08:30; -083015; -08:30:15
    x ゾーンオフセット オフセット-x +0000; -08; -0830; -08:30; -083015; -08:30:15
    Z ゾーンオフセット オフセット-Z +0000; -0800; -08:00

    ノート:

    デフォルトのパターンはISO-8601形式です: yyyy-MM-dd'T'HH:mm:ss[.S..S]
  • timezone: timezone引数はオプションで、STRINGデータ型を入力として使用します。

    timezone引数は、TimeZoneID (特定のタイムゾーンを表す識別子)を使用します。たとえば、"Asia/Calcutta"などの明確に定義された名前、または"GMT-08:00"などのカスタムIDを使用します。詳細は、TimeZoneIDのリストを参照してください。デフォルトはUTCです。

    ノート:

    UTCおよびGMTを除き、タイムゾーンには略語ではなく、明確に定義された名前(PST、ISTなど)を使用します。
  • 戻り値: STRING

    この関数は、次の場合にNULLを返します。

    • timestamp, pattern,またはtimezone引数がNULLに設定されている場合。
    • 入力timestampがTIMESTAMP型にキャスト可能でない場合。

例12-18 特定のチケット番号を持つ乗客の場合、入力されたpatternおよびtimezoneに従って最初の移動区間に推定到着時間を出力。

SELECT $info.estimatedArrival, format_timestamp($info.estimatedArrival, "MMM dd, yyyy HH:mm:ss O", "America/Vancouver") AS FormattedTimestamp
FROM BaggageInfo bag, bag.bagInfo.flightLegs[0] AS $info
WHERE ticketNo= 1762399766476

説明: この問合せでは、format_timestamp関数の引数としてestimatedArrivalフィールド、patternおよびtimezoneのフルネームを指定して、timestamp文字列を指定された"MMM dd, yyyy HH:mm:ss"パターンに変換します。

ノート:

pattern引数内の文字'O'はZoneOffsetを表し、結果の文字列にグリニッジ/UTCとの差の時間量を出力します。
出力:
{"estimatedArrival":"2019-02-03T06:00:00Z","FormattedTimestamp":"Feb 02, 2019 22:00:00 GMT-8"}

例12-19 書式設定されたタイムスタンプの表示。

SELECT format_timestamp('2024-05-08T09:41:00',"dd MMM, uuuu HH:mm:ss","Asia/Calcutta") AS TIMESTAMP1
FROM BaggageInfo 
WHERE ticketNo=1762399766476

説明:この問合せでは、format_timestamp関数を使用して、指定されたpattern内の指定されたtimestampを出力します。書式設定中、関数はtimestampを"Asia/Calcutta"タイムゾーンに調整し、結果のタイムスタンプを"dd MMM, uuuu HH:mm:ss"パターンで表示します。

出力:
{"TIMESTAMP1":"08 May, 2024 15:11:00"}