Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
时间戳BigQuery标准SQL的最小值_Sql_Google Bigquery - Fatal编程技术网

时间戳BigQuery标准SQL的最小值

时间戳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] 有什么建议吗?谷歌针对这个错误推出了一个修

使用标准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]

有什么建议吗?

谷歌针对这个错误推出了一个修复方案。

您是否对这两种类型使用相同的时间戳数据类型?如果在legacy中使用DT字符串来存储1970年之前的日期,那么现在使用Unix将抛出一个错误…表是相同的。事实上,只有一个名为User的表,但访问它的语法不同。使用BigQuery,您可以设置一个标志“使用遗留SQL”来切换查询语法。使用的是完全相同的时间戳数据类型(据我作为用户所知)。更可怕的是,我可以毫无错误地在我的另一个表上运行现代SQL查询,该表具有与数据类型时间戳相同的已创建字段,并且可以为null。您是否尝试过将mm作为
选择min(cast(创建为Date))
?如果这一个失败了,可能是因为一段无用的数据正在生成标准SQL引擎不希望看到的遗留时间戳表示。你可能想明星更新,我也会尝试跟进这里,当我知道更多。