You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求协助:将PostgreSQL日期计算查询转换为Google BigQuery

解决BigQuery中DATE_ADD的语法错误问题

我来帮你搞定这个语法错误!你的问题出在BigQuery对DATE_ADD函数的参数格式要求和PostgreSQL不一样,咱们一步步来修正:

错误原因分析

你写的INTERVAL (1 day * days_supply)不符合BigQuery的语法规则,BigQuery中使用DATE_ADD时,间隔的数值和单位需要分开指定,不能像PostgreSQL那样通过乘法拼接单位和数值。

正确的BigQuery查询写法

原PostgreSQL的逻辑是:如果计算后的日期和原起始日期相同(比如days_supply为0),则返回NULL,否则返回计算后的日期,再通过COALESCE处理NULL情况。对应BigQuery的正确写法如下:

SELECT 
  COALESCE(
    NULLIF(
      DATE_ADD(drug_exposure_start_date, INTERVAL days_supply DAY),
      drug_exposure_start_date
    )
  ) 
FROM `x`

逻辑说明

  • DATE_ADD(drug_exposure_start_date, INTERVAL days_supply DAY):直接将drug_exposure_start_date加上days_supply天,这和你原查询中drug_exposure_start_date + (INTERVAL '1 day' * days_supply)的逻辑完全等价
  • NULLIF(..., drug_exposure_start_date):如果计算后的日期和原起始日期一致,就返回NULL
  • COALESCE(...):保留原逻辑中对NULL值的处理(如果后续需要补充默认值,直接在COALESCE里加第二个参数即可)

内容的提问来源于stack exchange,提问作者user9807750

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:14:11