【问题标题】:BigQuery Where Date is Less Than or Equal to 3 Days Minus Current Date日期小于或等于 3 天减去当前日期的 BigQuery
【发布时间】:2023-03-23 06:26:01
【问题描述】:

我正在尝试创建一个查询,以仅返回日期距当前日期负 3 天的数据。我试过了:

date <= DATE_ADD(CURRENT_DATE(), -3, 'DAY')

但这会返回Error: Expected INTERVAL expression

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    参见下面示例中的 WHERE 子句

    #standardSQL
    WITH yourTable AS (
      SELECT i, date
      FROM UNNEST(GENERATE_DATE_ARRAY('2017-04-15', '2017-04-28')) AS date WITH OFFSET AS i
    )
    SELECT *
    FROM yourTable
    WHERE date <= DATE_SUB(CURRENT_DATE(), INTERVAL 3 DAY)
    -- ORDER BY date
    

    顺便说一句,如果您仍然使用旧版 SQL - 请参阅下面的示例

    #legacySQL
    SELECT *
    FROM -- yourTable  
      (SELECT 1 AS id, DATE('2017-04-20') AS date),
      (SELECT 2 AS id, DATE('2017-04-21') AS date),
      (SELECT 3 AS id, DATE('2017-04-22') AS date),
      (SELECT 4 AS id, DATE('2017-04-23') AS date),
      (SELECT 5 AS id, DATE('2017-04-24') AS date),
      (SELECT 6 AS id, DATE('2017-04-25') AS date)
    WHERE TIMESTAMP(date) <= DATE_ADD(TIMESTAMP(CURRENT_DATE()), -3, 'DAY')
    -- ORDER BY date
    

    【讨论】:

      【解决方案2】:

      这适用于字符串格式的日期。

      DATE(TIMESTAMP(date)) &lt;= DATE_SUB(CURRENT_DATE(), INTERVAL 3 DAY)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-29
        • 1970-01-01
        • 1970-01-01
        • 2012-07-30
        • 2012-08-21
        • 2013-01-03
        相关资源
        最近更新 更多