BigQuery返回无匹配签名

我想在BigQuery控制台上运行一个看起来像这样的查询

where created > DATE_SUB(CURRENT_DATE(), interval 7 day)

我得到的错误是

No matching signature for operator > for argument types: TIMESTAMP, DATE. Supported signatures: ANY > ANY at [3:7]

我在这里想念的是什么?

回答(1)

2 years ago

您正在使用 > 运算符来比较两种不同的类型,时间戳和日期,这会给您一个错误 . 如果你想看看过去七天,你会使用这个过滤器:

where created > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), interval 7 day)

如果您想要查看过去七天,但只返回从UTC午夜开始的行,您将使用此过滤器:

where DATE(created) > DATE_SUB(CURRENT_DATE(), interval 7 day)

区别在于第一个过滤器比较实际时间戳,其中包括一天中的时间,而第二个过滤器比较没有时间部分的日期 .