BigQuery でミリ秒のタイムスタンプの値を日時表記に変換するメモ
BigQuery でミリ秒のタイムスタンプの値を日時表記に変換するメモです。
背景
とりあえず、データを蓄積するときにタイムスタンプのミリ秒を入れておくのですが、データを後で眺めるときに 2022-11-22 23:17 のような表記で見たいときに、いつも書き方を調べてしまうのでメモしておきます。
このようなデータがあるとします

timestamp の値を変換
SELECT
FORMAT_TIMESTAMP('%Y-%m-%d %H:%M', TIMESTAMP_MILLIS(CAST(timestamp AS INT64))) as timestampConverted
FROM
`table`
LIMIT
1000
こちらを SQL ワークスペースで実行します。

1669126627711 というミリ秒のタイムスタンプの値が、UTC 時間の 2022-11-22 14:17 に変換されます。
SELECT
FORMAT_TIMESTAMP('%Y-%m-%d %H:%M', TIMESTAMP_MILLIS(CAST(timestamp AS INT64)),"Asia/Tokyo") as timestampConverted
FROM
`table`
LIMIT
1000
こちらを SQL ワークスペースで実行します。

1669126627711 というミリ秒のタイムスタンプの値が、日本時間の 2022-11-22 23:17 に変換されます。
data の JSON の中の createdAt を変換
SELECT
FORMAT_TIMESTAMP('%Y-%m-%d %H:%M', TIMESTAMP_MILLIS(CAST(JSON_EXTRACT(data,"$.createdAt") AS INT64))) as createdAt
FROM
`table`
LIMIT
1000
こちらを SQL ワークスペースで実行します。

1669126627711 というミリ秒のタイムスタンプの値が、UTC 時間の 2022-11-22 14:17 に変換されます。
SELECT
FORMAT_TIMESTAMP('%Y-%m-%d %H:%M', TIMESTAMP_MILLIS(CAST(JSON_EXTRACT(data,"$.createdAt") AS INT64)),"Asia/Tokyo") as createdAtJST
FROM
`table`
LIMIT
1000
こちらを SQL ワークスペースで実行します。

1669126627711 というミリ秒のタイムスタンプの値が、日本時間の 2022-11-22 23:17 に変換されます。