bigquery 日付型の比較時にint32なのでダメと言われる

※bigqueryには現在2種類のクエリ記述方法があるが、本記事ではLegacy SQLを取り扱う

テーブルの保存を行えば、GUI上でどのカラムがどんな型で格納されているか確認できる為、型の勘違い等は本来発生しづらいが、日付型(DATE型)のカラムを比較する際、下記のエラーが返ってくるケースがある。

--クエリ
SELECT
    *
FROM
    TABLE_1
WHERE
    purchase_date = '2018-05-02'
Error: Argument type mismatch in function EQUAL : 'purchase_date' is type int32, '2018-05-02' is type string'

保存されているテーブルの型がDATEなので、絶対間違ってないだろ!と言いたい気持ちを抑え、下記の対応を実施することで解決可能。

WHERE
    DATE(purchase_date) = '2018-05-02'

DATE型で保存されるカラムを、関数でDATE型化する。

なぜかは知らない。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.