【问题标题】:Minimum of Timestamp BigQuery Standard SQL时间戳 BigQuery 标准 SQL 的最小值
【发布时间】:2017-04-30 00:29:25
【问题描述】:

使用标准 SQL 在 Bigquery 中运行此简单查询时出现以下错误:

SELECT MIN(created) as mm FROM `projectId.ds.User`

创建的列的类型为 cloud.helix.Timestamp,与预期的 INT64 Dismiss 类型不同 撰写查询

创建的字段具有数据类型 Timestamp,可以为空,但不包含空值。

此查询在旧版 SQL 中有效:

SELECT MIN(created) as mm FROM [projectId:ds.User]

有什么建议吗?

【问题讨论】:

  • 两者是否使用相同的时间戳数据类型?如果在 legacy 中使用 DT 字符串来存储 1970 年之前的日期,那么现在使用 Unix 将引发错误...
  • 表格是一样的。事实上,只有一个名为 User 的表,但访问它的语法不同。使用 BigQuery,您可以设置一个标志“使用旧版 SQL”来切换查询语法。正在使用完全相同的 TIMESTAMP 数据类型(据我作为用户所知)。
  • 更令人毛骨悚然的是,我可以在我的另一个表上运行现代 SQL 查询而不会出错,该表具有相同的已创建字段,数据类型为 TIMESTAMP 且可为空。
  • 你试过select min(cast(created as Date)) as mm吗?如果那个摔倒了,可能是一块 duff 数据
  • 某些东西正在生成标准 SQL 引擎不希望看到的遗留时间戳表示。您可能想给the issue on the public tracker加注星标以获取更新,当我知道更多信息时,我也会尝试在这里跟进。

标签: sql google-bigquery


【解决方案1】:

Google 已推出解决此错误的修复程序。 https://code.google.com/p/google-bigquery/issues/detail?id=841

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-13
    • 2017-04-08
    • 1970-01-01
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    • 2012-04-03
    相关资源
    最近更新 更多