【问题标题】:Trying to do an query that runs every hour in BQ尝试在 BQ 中执行每小时运行一次的查询
【发布时间】:2021-12-19 19:00:48
【问题描述】:

所以目前,一位聪明的数据科学家在这里设置了一个每小时运行一次的查询:

WHERE creationdate > DATETIME(DATE_ADD(CURRENT_TIMESTAMP(), INTERVAL -60 MINUTE))

创建日期以这种格式显示:2021-11-05T01:32:57

所以我只写了一个单独的查询(不同的表),如果没有选择一个间隔但运行良好但失败:

TransactionTimestamp >= DATETIME(DATE_ADD(CURRENT_TIMESTAMP(), INTERVAL -60 MINUTE))

错误是:

对于参数类型:TIMESTAMP、DATETIME 的运算符 >= 没有匹配的签名。支持的签名:ANY >= ANY at [7:5]

TransactionTimestamp 以这种格式显示: 2021-11-05 03:14:22 UTC

我只是困惑如何格式化?

【问题讨论】:

    标签: sql google-bigquery bq


    【解决方案1】:

    'TransactionTimestamp' 数据类型是“TIMESTAMP”,而DATETIME() 函数输出数据类型将是“DATETIME”数据类型,基于其输入参数和运算符 > 或

    原因是 dateadd() 函数返回日期作为输出,即使您将时间戳作为输入参数传递,dateadd() 也会获取时间戳并从中提取日期。

    相反,您可以使用TIMESTAMP_ADD 函数:

    TransactionTimestamp >= TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL -60 MINUTE)
    

    【讨论】:

    • 你成功了。我所有的爱给你
    • 不客气,如果这个答案有帮助,请接受并投票
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多