Google bigquery 遗留SQL-此查询如何编译?

Google bigquery 遗留SQL-此查询如何编译?,google-bigquery,Google Bigquery,我在遗留SQL中遇到了一个令人惊讶的行为。事实上,我无意中启动了此查询。我以编程方式替换了“[[date]]”,只是忘了在UI中替换它: SELECT DATE(ComputationDate) as date FROM [project:dataset.table] WHERE DATE(ComputationDate) < '[[date]]' ORDER BY date 成功了!我检索了到今天为止的所有数据。这在标准SQL中失败,但这是一种预期行为吗 这不是什么大问题,但如果替

我在遗留SQL中遇到了一个令人惊讶的行为。事实上,我无意中启动了此查询。我以编程方式替换了“[[date]]”,只是忘了在UI中替换它:

SELECT DATE(ComputationDate) as date 
FROM [project:dataset.table]
WHERE DATE(ComputationDate) < '[[date]]' 
ORDER BY date
成功了!我检索了到今天为止的所有数据。这在标准SQL中失败,但这是一种预期行为吗

这不是什么大问题,但如果替换失败,我将无法从代码中看到它,因为查询仍在编译


谢谢

罪魁祸首在于它是如何在引擎盖下铸造的。在我的测试中,您的查询将返回无法解析为日期类型的任何字符串的所有数据。

以下版本BigQuery Legacy SQL将不返回任何行,这可能是您发现问题的良好指示

#legacySQL
SELECT DATE(ComputationDate) as date 
FROM [project:dataset.table]
WHERE DATE(ComputationDate) < DATE('[[date]]') 
ORDER BY date