このステップでは、EXTRACT
関数を使用してタイムスタンプの特定の部分(年、月、日など)を抽出し、AT TIME ZONE
句を使用してタイムスタンプを異なるタイムゾーンに変換する方法を学びます。
まず、event_time
列から年を抽出してみましょう。次のクエリを実行します。
SELECT event_name, EXTRACT(YEAR FROM event_time) AS event_year FROM events;
このクエリでは、EXTRACT
関数を使用して event_time
列から年を取得し、event_year
としてエイリアス(alias)を付けています。出力は次のようになります。
event_name | event_year
----------------+------------
Conference Call | 2024
Project Meeting | 2024
Follow-up Meeting | 2024
(3 rows)
次に、AT TIME ZONE
句を使用して event_time
を特定のタイムゾーンに変換する方法を見てみましょう。event_time
を America/Los_Angeles
タイムゾーンで表示するには、次のクエリを使用します。
SELECT event_name, event_time AT TIME ZONE 'America/Los_Angeles' AS los_angeles_time FROM events;
このクエリは、event_time
を America/Los_Angeles
タイムゾーンに変換し、los_angeles_time
として表示します。出力は次のようになります。
event_name | los_angeles_time
----------------+---------------------
Conference Call | 2024-01-20 10:00:00
Project Meeting | 2024-01-20 10:00:00
Follow-up Meeting | 2024-01-21 04:00:00
(3 rows)
EXTRACT
と AT TIME ZONE
を組み合わせて、特定のタイムゾーンのタイムスタンプの特定のコンポーネントを抽出できます。たとえば、America/Los_Angeles
タイムゾーンでのイベントの時間を調べるには、次のクエリを使用します。
SELECT event_name, EXTRACT(HOUR FROM event_time AT TIME ZONE 'America/Los_Angeles') AS event_hour_la FROM events;
これにより、America/Los_Angeles
タイムゾーンでの各イベントの時間が出力されます。