为什么这个 SQL 有效? DATE 关键字 + 日期字符串 (YYYY-MM-DD)
Why does this SQL work? DATE keyword + date string (YYYY-MM-DD)
在检查一位前同事的代码时,我遇到了以下问题:DATE'2019-01-01'
为什么这行得通?它用于 BigQuery 标准 SQL 上下文。
难道不需要 DATE('2019-01-01')
吗?根据文档 https://cloud.google.com/bigquery/docs/reference/standard-sql/date_functions#date
我不确定为什么允许使用这两种语法,但它们产生相同的数据类型。因此,如果您使用其中任何一个都没有关系,因为您不会遇到数据类型不匹配的情况。我使用 bqutil.fn.typeof 测试了它以测试两种语法的数据类型。请参阅下面的测试:
查询:
SELECT DATE('2019-01-01') as date_1,
DATE'2019-01-01' as date_2,
bqutil.fn.typeof(DATE('2019-01-01')) as typeof_date1,
bqutil.fn.typeof(DATE'2019-01-01') as typeof_date2
两种语法都产生 DATE
数据类型。
输出:
在检查一位前同事的代码时,我遇到了以下问题:DATE'2019-01-01'
为什么这行得通?它用于 BigQuery 标准 SQL 上下文。
难道不需要 DATE('2019-01-01')
吗?根据文档 https://cloud.google.com/bigquery/docs/reference/standard-sql/date_functions#date
我不确定为什么允许使用这两种语法,但它们产生相同的数据类型。因此,如果您使用其中任何一个都没有关系,因为您不会遇到数据类型不匹配的情况。我使用 bqutil.fn.typeof 测试了它以测试两种语法的数据类型。请参阅下面的测试:
查询:
SELECT DATE('2019-01-01') as date_1,
DATE'2019-01-01' as date_2,
bqutil.fn.typeof(DATE('2019-01-01')) as typeof_date1,
bqutil.fn.typeof(DATE'2019-01-01') as typeof_date2
两种语法都产生 DATE
数据类型。
输出: