时间戳BigQuery标准SQL的最小值
使用标准SQL在Bigquery中运行此简单查询时出现以下错误:时间戳BigQuery标准SQL的最小值,sql,google-bigquery,Sql,Google Bigquery,使用标准SQL在Bigquery中运行此简单查询时出现以下错误: SELECT MIN(created) as mm FROM `projectId.ds.User` 创建的列的类型为cloud.helix.Timestamp,与预期的INT64类型不同 组合查询 创建的字段具有数据类型时间戳,可为空,但不包含空值 但是,此查询在旧式SQL中有效: SELECT MIN(created) as mm FROM [projectId:ds.User] 有什么建议吗?谷歌针对这个错误推出了一个修
SELECT MIN(created) as mm FROM `projectId.ds.User`
创建的列的类型为cloud.helix.Timestamp,与预期的INT64类型不同
组合查询
创建的字段具有数据类型时间戳,可为空,但不包含空值
但是,此查询在旧式SQL中有效:
SELECT MIN(created) as mm FROM [projectId:ds.User]
有什么建议吗?谷歌针对这个错误推出了一个修复方案。
您是否对这两种类型使用相同的时间戳数据类型?如果在legacy中使用DT字符串来存储1970年之前的日期,那么现在使用Unix将抛出一个错误…表是相同的。事实上,只有一个名为User的表,但访问它的语法不同。使用BigQuery,您可以设置一个标志“使用遗留SQL”来切换查询语法。使用的是完全相同的时间戳数据类型(据我作为用户所知)。更可怕的是,我可以毫无错误地在我的另一个表上运行现代SQL查询,该表具有与数据类型时间戳相同的已创建字段,并且可以为null。您是否尝试过将mm作为
选择min(cast(创建为Date))
?如果这一个失败了,可能是因为一段无用的数据正在生成标准SQL引擎不希望看到的遗留时间戳表示。你可能想明星更新,我也会尝试跟进这里,当我知道更多。