web-dev-qa-db-ja.com

BigQuery-「レガシー」列を比較する方法(レガシーSQLを使用)

Date型の列dateを持つBigQueryテーブルがあります。私はこのクエリを実行しようとしています:

SELECT * FROM dataset.table_name WHERE Date = "2016-07-11"

これによりエラーがスローされます。

Argument type mismatch in function EQUAL: 'Date' is type int32, '2016-07-11' is type string

私もこのクエリを試してみました:

SELECT * FROM dataset.table_name WHERE Date = TIMESTAMP("2016-07-11")

しかし、これは0個の結果を返しますが、私のテーブルにはこの値(2016-07-11Date列。

それでは、BigQueryのdateフィールドをどのように比較できますか?

15
rereradu

以下をお試しください

WHERE DATE(Date) = "2016-07-11"

私の追加の推奨事項は、列の名前として予約語を使用しないことです。列の名前が適切であれば、元のWHERE句は完全に機能し、DATE()=""で回避策を使用する必要はありません。

20

この解決策は私にとってはうまくいきませんでした:

DATE(Date) = "2016-07-11"

代わりに、私は使用する必要がありました:

Date = TIMESTAMP("2016-07-11")