parse_to_timestamp関数
parse_to_timestamp
関数は、文字列をタイムスタンプに変換します。指定したstring
の形式と照合するpattern
パラメータが必要です。
TIMESTAMP parse_to_timestamp(<string>[, pattern])
- string:
string
引数は、指定されたpattern
の書式のTIMESTAMP値のSTRINGデータ型を取ります。ノート:
タイムスタンプを持つstring引数は、TimeZoneID (特定のタイムゾーンを表す識別子)を使用します。UTCおよびGMTを除き、タイムゾーンには略語ではなく、明確に定義された名前(PST、ISTなど)を使用します。 - 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]次の表は、タイムゾーン情報を含む
string
引数と照合するためにpattern
引数に含める必要がある内容を示しています。string
引数が次の場合pattern
引数に次を含める必要があります'Z'で終わる場合 'VV'、'X'、'zzzz'などのゾーン記号。 America/Los_Angeles、Europe/Parisなど、完全なタイムゾーン名で終わる場合。詳細は、TimeZoneIDのリストを参照してください。 'VV'、'zzzz'などのゾーン記号。 GMT +/- なんらかの値、で終わる場合 'VV'、'zzzz'またはZoneOffset 'O'、'OOOO'などのゾーン記号。 - 戻り値:
TIMESTAMP(9)
string
またはpattern
引数がNULLの場合、この関数はNULLを返します。
例12-20 指定されたpattern
を使用するユーザーのストリーミング・アカウントの有効期限string
の解析。
SELECT parse_to_timestamp(sa.account_expiry,"yyyy-MM-dd'T'hh:mm:ss.SSSSSSSSSzzzz")AS DAY
FROM stream_acct sa
WHERE acct_id=1
説明: 問合せでは、string
引数の形式と照合するpattern
を指定する必要があり、parse_to_timestamp
関数によってaccount_expiry
の日付がタイムスタンプ値に変換されます。
{"DAY":"2023-10-18T00:00:00.000000000Z"}
例12-21 指定されたstring
を、ゾーン記号を含む指定されたpattern
で解析してタイムスタンプに変換。
SELECT parse_to_timestamp('03/14/23 09:04:01 America/Los_Angeles', "MM/dd/yy HH:mm:ss VV") AS TIMESTAMP
FROM BaggageInfo
WHERE ticketNo=1762390789239
説明: この問合せでは、string
引数の任意のTimeZoneIDに対してゾーン記号'VV'を使用します。format_timestamp関数にラップしないかぎり、出力タイムスタンプはUTCに対して相対的に表示されます。
{"TIMESTAMP":"2023-03-14T16:04:01.000000000Z"}
例12-22 指定されたstring
を、ゾーン・オフセットを含む指定されたpattern
で解析してタイムスタンプに変換。
SELECT format_timestamp(parse_to_timestamp('2024/02/12 18:30:54 GMT+02:00', "yyyy/dd/MM HH:mm:ss OOOO"),"yyyy-MM-dd HH:mm:ss OOOO","GMT+02:00")AS TIMESTAMP
FROM BaggageInfo
WHERE ticketNo=1762390789239
説明: この問合せでは、string
引数にTimeZoneID、GMT+02:00があるため、pattern
引数にはゾーン記号またはZoneOffsetを含める必要があります。format_timestamp関数にラップすると、出力タイムスタンプがGMT+02:00タイムゾーンで表示されます。
{"TIMESTAMP":"2024-12-02 18:30:54 GMT+02:00"}