GA4からBigQueryへエクスポートされたevent_timestampはUTC(協定世界時)の時刻で格納されているため、必要であれば日本時刻へ変換する。UTC時刻と日本のJSTとは9時間のズレがあり、UTCから9時間加えた時刻がJSTとなる。
結論「event_timestamp」を日本時間(日付)に変換するクエリ
DATE(TIMESTAMP_MICROS(event_timestamp), 'Asia/Tokyo') AS 日付を表す別名
「YYYY-MM-DD」の日付を表すDATE型を取得するには上記のクエリで実行する。「YYYY-MM-DD」の形式であっても、それが文字列なのか日付なのかで全く違うものとなる。
event_timestampを日本時間の日付に変換するサンプルクエリ
CREATE TEMP FUNCTION date_from() RETURNS STRING AS ('20240401');
SELECT
DATE(TIMESTAMP_MICROS(event_timestamp), 'Asia/Tokyo') AS event_timestamp_ymd,
PARSE_DATE("%Y%m%d", event_date) AS event_date_ymd,
COUNT(*) AS _pv
FROM
`<project>.<dataset>.events_*`
WHERE
_TABLE_SUFFIX BETWEEN date_from() AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(),INTERVAL 1 DAY))
AND
event_name = 'page_view'
GROUP BY
event_timestamp_ymd,
event_date_ymd
ORDER BY
event_timestamp_ymd ASC
クエリ解説
DATE(TIMESTAMP_MICROS(event_timestamp), 'Asia/Tokyo') AS event_timestamp_ymd
PARSE_DATE("%Y%m%d", event_date) AS event_date_ymd
両者は同じ結果となる。そのため、日にちまで扱えればよいのであれば’event_date’フィールドを使用しても問題ない。