为什么BigQuery Standard SQL中DATE'YYYY-MM-DD'语法可正常运行?
BigQuery 两种日期写法生效原因说明
两种写法都是BigQuery Standard SQL支持的合法语法,分属不同的语法类别:
DATE('2019-01-01')是函数调用写法,就是官方文档中说明的日期转换函数用法,DATE作为内置函数接收字符串、时间戳等类型的入参,将符合规则的输入转换为DATE类型值,支持传入列名、变量、动态参数等非固定值。DATE'2019-01-01'是标准SQL原生日期字面量写法,属于ANSI SQL规范定义的固定常量声明语法,直接将后续跟随的符合yyyy-MM-dd格式的字符串解析为DATE类型常量,不需要走函数调用的解析逻辑,执行效率略高,该语法也被PostgreSQL、Hive等绝大多数兼容标准SQL的数据库支持。
二者返回的DATE类型结果完全一致,仅适用场景有区别:字面量写法仅支持跟固定日期常量,动态值的类型转换必须使用函数调用写法。
内容的提问来源于stack exchange,提问作者Nicolás Fernández Fioretti
相关产品推荐
相关产品推荐

