Google bigquery 无法在BigQuery';中使用计算的偏移量;s DATE_ADD函数

Google bigquery 无法在BigQuery';中使用计算的偏移量;s DATE_ADD函数,google-bigquery,tableau-api,google-cloud-platform,Google Bigquery,Tableau Api,Google Cloud Platform,我试图在Tableau中创建一个自定义查询,用于Google的BigQuery。目标是在Tableau中有一个offset参数,用于更改基于日期的WHERE子句中使用的偏移量 在Tableau中,它将如下所示: SELECT DATE_ADD(UTC_USEC_TO_MONTH(CURRENT_DATE()),<Parameters.Offset>-1,"MONTH") as month_index, COUNT(DISTINCT user_id, 1000000) as dis

我试图在Tableau中创建一个自定义查询,用于Google的BigQuery。目标是在Tableau中有一个offset参数,用于更改基于日期的WHERE子句中使用的偏移量

在Tableau中,它将如下所示:

  SELECT
DATE_ADD(UTC_USEC_TO_MONTH(CURRENT_DATE()),<Parameters.Offset>-1,"MONTH") as month_index,
COUNT(DISTINCT user_id, 1000000) as distinct_count
  FROM
[Orders]
  WHERE
order_date >= DATE_ADD(UTC_USEC_TO_MONTH(CURRENT_DATE()),<Parameters.Offset>-12,"MONTH")
  AND
order_date < DATE_ADD(UTC_USEC_TO_MONTH(CURRENT_DATE()),<Parameters.Offset>-1,"MONTH")
当我在BigQuery编辑器中使用简单算法尝试相同的查询时,它会失败,并出现相同的错误

SELECT
DATE_ADD(UTC_USEC_TO_MONTH(CURRENT_DATE()),5-3,"MONTH") as month_index,
  FROM [Orders]
有解决办法吗?到目前为止,我唯一的选择似乎是在Tableau中进行多个偏移


谢谢你的帮助

我承认这是DATE_ADD功能上的漏洞。它可以被修复,但在修复程序投入生产之前需要一段时间。

这里有一个可能的解决方法。如果到目前为止的第一个参数是字符串,那么它似乎可以工作。然后可以将结果截断为月份边界,并将其从时间戳转换为字符串

SELECT
FORMAT_UTC_USEC(UTC_USEC_TO_MONTH(DATE_ADD(CURRENT_DATE(),5-3,"MONTH"))) as month_index;

它与缺少的时区功能无关。夏天我们比UTC早2小时,冬天只有1小时。谢谢Mosha。我们可以在某个地方继续吗?请在输入此版本,我将在那里接受。好的,输入为254版:
SELECT
FORMAT_UTC_USEC(UTC_USEC_TO_MONTH(DATE_ADD(CURRENT_DATE(),5-3,"MONTH"))) as month_index;