Date 使用“过滤BigQuery中的数据”;“上星期的最后一天”;

Date 使用“过滤BigQuery中的数据”;“上星期的最后一天”;,date,filter,google-bigquery,between,int64,Date,Filter,Google Bigquery,Between,Int64,对于我的BigQuery请求,我想将Between函数中的日期定义为字符串。但我收到以下错误消息“无法将INT64类型的字段“date”读取为字符串” 我对前一周最后一天的计算在SELECT子句中起作用,并给出正确的结果,但我不能在WHERE子句中使用?有什么想法吗 选择 将日期('%Y%m%d',日期子项(日期(解析日期('%Y%m%d',日期),星期一),间隔1天)格式化为前一周的最后一天, 作为反弹的总和(总计.反弹) 来自`xxx.ga_*`t 哪里 _表格格式日期之间的后缀(“%Y%m

对于我的BigQuery请求,我想将Between函数中的日期定义为字符串。但我收到以下错误消息
“无法将INT64类型的字段“date”读取为字符串”

我对前一周最后一天的计算在
SELECT
子句中起作用,并给出正确的结果,但我不能在
WHERE
子句中使用?有什么想法吗

选择
将日期('%Y%m%d',日期子项(日期(解析日期('%Y%m%d',日期),星期一),间隔1天)格式化为前一周的最后一天,
作为反弹的总和(总计.反弹)
来自`xxx.ga_*`t
哪里
_表格格式日期之间的后缀(“%Y%m%d”,日期子项(当前日期(),间隔71天))
及
格式日期('%Y%m%d',日期子项(日期事实(解析日期('%Y%m%d',日期),星期一),间隔1天))
按1分组
示例输入数据:

date,    Bounces
20201118, 18695
20201119, 18694
20201120, 18693

下面允许您执行前一周的最后一天。
您需要将日期转换为字符串。 但是,sql语句仍然存在一些问题,特别是在
WHERE
子句中,您需要解决这些问题,并实际设置一个运算符和一个要计算的值

with temp as (
SELECT 20201118 date, 18695 Bounces UNION ALL
SELECT 20201119, 18694 UNION ALL
SELECT 20201120, 18693
)

SELECT
FORMAT_DATE('%Y%m%d',DATE_SUB(DATE_TRUNC(PARSE_DATE('%Y%m%d', cast(date as string)), WEEK(MONDAY)),INTERVAL 1 DAY)) as LastDayofPreviousWeek,
sum(t.bounces) as Bounces
from temp t

你能提供一些样本数据吗?但我猜您需要将日期转换为字符串。字段日期在YYYYMMDD中定义为字符串,如“20201120”日期,反弹20201181818695 202011119 18694 20201120 18693