Google Cloud Platform IT

【GCP】BigQueryの日付型について

2021年9月3日

日付型についてちょっと苦手意識があったので、一旦整理をしようと思います。
なんか今までも日付型のイメージがついてなく、
DATE型はYYYYMMDDで、どういう値の形式なら入るのか?
TIME型はHH:MM:SSで、こっちもどういう値の形式なのか?
など整理せず、いつもエラーになってあーーってなっていたくらい、苦手意識があります。

そのため一回整理したいなと思います。

BigQueryとMySQLの日付型の違い

BigQueryとMySQLの日付型について、ちょっとまとめてみました。
結構同じというかほとんど同じで、

● BigQuery

日付型 値の形式
DATE型 0001-01-01~9999-12-31 YYYY-MM-DDの形でないとだめ。YYYY/MM/DDはダメで、YYYY-MM-DDでハイフンでないとだめ。
TIME型 HH:MM:SS (00:00:00~23:59:59.99999)
DATETIME型 DATE型+TIME型なので、日付と時間。つまりは、YYYY-MM-DD HH:MM:SS
TIMESTAMP型 0001-01-01 0000:00:00 UTC ~ 9999-12-31 23:59:59.999999 UTC

※ TIMESTAMPタイムスタンプとは、時刻印という意味の英単語で、文書に押印された日時のこと。ITの分野では、ファイルやデータの属性の一つとして付与・保管される日時情報をこのように呼ぶ。
参照:IT用語辞典 e-words
→ つまりはTIMESTAMPってテーブルに書き込まれた時間という意味かな。ならばcreated_atとかがまさにそれなのかも(select CURRENT_TIMESTAMP() as created_at)

※ よくある日付の値として「YYYY/MM/DD」があるが、これはBigQueryのDATE型に入れようとするとエラーになる。
値の形式は「YYYY-MM-DD」なので、DATE型に入れる場合は、ハイフンで表記するようにする必要がある。

● MySQL

日付型
DATE型 YYYY-MM-DD
TIME型 HH:MM:SS
DATETIME型 YYYY-MM-DD HH:MM:SS
TIMESTAMP型

csvデータ取り込みはUTF-8でないといけない

さまざまなBQについては以下で解説してますので、ぜひ!

● スケジュールクエリ

● BigQuery ML Engine

● パーティション

● ユーザー定義関数や定数

-Google Cloud Platform, IT
-,

© 2022 Yosshi Blog Powered by AFFINGER5