web-dev-qa-db-fra.com

BigQuery - comment comparer une colonne "date" (en utilisant le SQL hérité)?

J'ai une table BigQuery avec une colonne Date qui est un type date. J'essaie d'exécuter cette requête:

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

Cela jette l'erreur:

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

J'ai également essayé cette requête:

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

mais cela renvoie 0 résultats, bien que ma table contienne au moins un enregistrement avec cette valeur (2016-07-11) dans la colonne Date.

Alors, comment puis-je comparer un champ date dans BigQuery?

15
rereradu

Essayez ci-dessous

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

Ma recommandation supplémentaire serait de ne pas utiliser de mots réservés comme nom de colonne, je pense que si votre colonne était nommée correctement - votre clause WHERE d'origine fonctionnerait parfaitement et vous n'auriez pas besoin d'utiliser une solution de contournement avec DATE()=""

20
Mikhail Berlyant

Cette solution ne fonctionnait pas pour moi:

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

Au lieu de cela, j'ai dû utiliser:

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