Datahub上で使用されているデータは、BigQueryを基盤としており、すべての日時データは UTC(協定世界時) で管理されています。
一方で、フィルタリストなどでユーザーが入力する日付・時刻はJST(日本標準時)として解釈されます。
そのため、入力された日時から 9時間を差し引いたUTC値 をもとにクエリが実行される仕様となっています。
日時の取り扱いルール
1. データの格納形式(UTC)
- Datahubのデータは、すべて UTC形式 で格納されています。
- 例:
2025-07-10T00:00:00Z
は、JSTでは2025-07-10 09:00:00
に相当します。
2. フィルタリスト画面での入力(日付・時刻)
- フィルタリストでは、ユーザーがJSTで入力した日付・時刻を、内部的に9時間差分を引いてUTCとして解釈する処理が自動的に行われています。
- これは、Datahub上のデータがUTCである前提に立って、JSTでの直感的な日付指定を可能にするための仕組みです。
例
入力・画面上での表示(JST) | 実際の検索条件(UTC) |
---|---|
2025-07-10 00:00 |
2025-07-09 15:00 |
2025-07-11 23:59 |
2025-07-11 14:59 |
よくある問題:JSTの値をUTCとして格納してしまうケース
一部の外部システムからDatahubに取り込んだデータなどで、JSTの値をそのまま格納したことで、UTCとして取り扱われてしまうケースが確認されています。
問題の例
- 本来
2025-07-10 10:00 JST
のデータであるべきものが、2025-07-10T10:00:00Z
(=JSTで19:00
)として格納されている - この場合、9時間先の未来日時として扱われるため、意図しない時間帯に属するデータとして扱われる
対応方法
- 外部データを取り込む際には、タイムゾーンの整合性を確認してください
- 必要に応じて、以下のように明示的な変換を行ってください:
```sql
-- JST表記の文字列をUTCとして正しく解釈させたい場合
TIMESTAMP(DATETIME "2025-07-10 10:00", "Asia/Tokyo")