2016-08-10 12 views
1

大きなクエリテーブルに日付列(YYYY-MM-DD形式)があります。日付列にwhere句を適用できません。私は次のクエリを使用しています:BigQueryの日付列にwhere句を指定できません

SELECT * FROM [dataSet_Id.TableName] where CR_DT=DATE("2016-01-01") 

SELECT * FROM [dataSet_Id.TableName] where CR_DT=DATE("2016-01-01") where CR_DT=20160101 

どうすればいいですか?

答えて

2

私は標準を使用している場合は、私は、それが仕事ですSQL Dialect の代わりにレガシーSQL

あなただけ を表示するオプションに行き、 標準SQL方言を使用したい場合は

SELECT * from demoschema.demotable where dob = date('2016-08-10'); 
SELECT * from demoschema.demotable where dob = '2016-08-11'; 

、あなたができるようにするために使用されSQLバージョンフィールドがあります:WHERE句で日付を処理するため個の

サンプルクエリ標準SQL。 。方言。

+0

BigQuery Webページのクエリエディタでクエリを実行すると、あなたが与えたコマンドがうまく動作します。 しかし、私はBQコマンドツールを使用してクエリが失敗するので、BQコマンドを使用してそれを実行しますか? –

1

あなたCR_DT列の型は、Stringの場合:

SELECT * FROM [dataSet_Id.TableName] where CR_DT = '2016-01-01' 

あなたCR_DT列の型が、その後TIMESTAMPの場合:

SELECT * FROM [dataSet_Id.TableName] where DATE(CR_DT) = DATE(timestamp('2016-01-01')) 
+0

ちょっと、私の列のタイプが "Date"で、 "TimeStamp"でも "String"でもありません。これは私が必要とするものではありません。 –

+0

と答えているようです;-) –

関連する問題