【问题标题】:Google bigquery date manipulation谷歌 bigquery 日期操作
【发布时间】:2018-05-04 02:43:48
【问题描述】:

我正在尝试在 google bigquery 中运行一个查询,在该查询中我从某个时间减去小时。出于某种原因,我收到错误“DATE_SUB 不支持 HOUR 日期部分”,代码行如下:(嵌入在更大的 sql 语句中)

DATE_SUB(t2.time, INTERVAL -1 HOUR)

我也尝试过这样的 DATE_ADD:

DATE_ADD(t2.click_time, -1, 'hour')

但我收到错误“预期的 INTERVAL 表达式在 ...”

有人对如何解决这个问题有任何建议吗?

我使用的是标准 SQL(未选中使用旧版 sql)。

谢谢!

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    你应该改用DATETIME_SUB()

    #standardSQL
    SELECT 
      CURRENT_DATETIME(), 
      DATETIME_SUB(CURRENT_DATETIME(), INTERVAL 1 HOUR)
    

    如果您将字段设置为 TIMESTAMP - 使用 TIMESTAMP_SUB()

    #standardSQL
    SELECT 
      CURRENT_TIMESTAMP(), 
      TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR)      
    

    【讨论】:

    • 感谢您的评论!出于某种原因,我在表中的时间列属于“TIMESTAMP”类型,但对于该查询,它需要属于“DATETIME”类型。我试过 CAST(t2.time AS DATETIME) 但它似乎不起作用。我做错了吗?
    • 谢谢!这很有帮助
    猜你喜欢
    • 2021-08-08
    • 2012-05-13
    • 2016-12-06
    • 2017-11-30
    • 2012-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多