2016-08-22 18 views
9

Date numaralı bir sütunu olan bir BigQuery tablosum var, bu bir date türüdür.BigQuery - "date" sütunu nasıl karşılaştırılır (eski SQL kullanarak)?

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

Ben de bu sorguyu çalıştık: Bu hatayı atar

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

: Ben bu sorguyu çalıştırmak çalışıyorum

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

ama bu benim tabloya rağmen, 0 sonuç döndürür Date sütununda bu değerle en az bir kayıt (2016-07-11) içerir.

Peki, BigQuery'deki date alanını nasıl karşılaştırabilirim? Sütun düzgün seçildi eğer

cevap

10

deneyin

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

altındaki My ek öneri sütunun adı olarak ayrılmış sözcükleri kullanmamaya olacaktır, bence - Orijinal WHERE fıkra mükemmel çalıştı ediyorum ve gerek olmaz Bu çözüm benim için çalışma değildi DATE()=""

+0

Bu işler, teşekkür ederim :) Ben de 'NEREDE CAST (STRING olarak tarihi) = "2016/07/11"' kullanılarak çalışması başarmış. Farklı bir sütun adıyla denedim, ancak özgün sorgu hala _argument türü mismatch_ hatası attı. – rereradu

+0

Cevabınızı kabul ettiniz. Teşekkür ederiz :) – rereradu

+0

Çözüm için teşekkürler. FWIW, "DATE", [ayrılmış kelimeler listesi] içinde listelenmiyor (https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical#reserved_keywords). Ve sütun adını değiştirmek, hatayı değiştirmiş gibi görünmüyordu. Garip olan şey şemanın sütun tipinin "DATE" olduğunu göstermesi. – jwadsack

0

ile geçici çözüm kullanın:

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

Ins tead, ben kullanmak zorunda:

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

Sadece sizin alanınız söz konusu tarih türü değil, aksine zaman damgası! –

+0

Veri türü fark ediyor: o) –