【发布时间】:2015-07-27 04:27:50
【问题描述】:
如果提供的参数不是有效的STRING,BigQuery 的 TIMESTAMP(<date_string>) 函数返回纪元时间而不是使查询失败是否正确?
例如:
SELECT TIMESTAMP(2015-06-30) as foo FROM [a_table]
..作为有效 SQL 运行并返回 1970-01-01 00:32:59 UTC
很明显,参数缺少引号,所以:
SELECT TIMESTAMP('2015-06-30') as foo FROM [a_table]
..现在返回 2015-06-30 00:00:00 UTC
相反,PARSE_UTC_USEC(<date_string>) 也需要一个 STRING 参数,当它不是正确的 STRING 时会抱怨:
SELECT PARSE_UTC_USEC(2015-06-30) as foo FROM [a_table]
错误:PARSE_UTC_USEC 的参数必须为 STRING 类型,但为 int64
【问题讨论】: