因此,从 bigquery 到 google data studio 的报告中有一段查询:
WHERE
creation_date IN (NULL, '1970-01-01T00:00:00') OR
creation_date BETWEEN PARSE_DATE('%Y%m%d', @DS_START_DATE) AND
PARSE_DATE('%Y%m%d', @DS_END_DATE)
和
@DS_END_DATE
帮助用户在GDS报告中选择日期范围。但是,在过滤数据时,我错过了最后一天。例如,如果 @DS_END_DATE
是 '2022-10-20'
,我在报告中找不到带有 creation_date = '2022-10-20T14:03:08'
的行。但报告包含所有数据,直到'2022-10-20'
我如何查询 bigquery 以获取来自 @DS_END_DATE 的所有内容,就像它一样
'2022-10-20T23:59:59'
?
附言是的,第一次遇到了一些麻烦,所以我用
creation_date IN (NULL, '1970-01-01T00:00:00')
来识别删除的ID,但是没关系。
当 BigQuery 进行比较时,它正在规范化数据类型并将您提供的日期转换为时间戳。当它进行这种转换时,它看起来像
2022-10-20 00:00:00 UTC
。鉴于您可以看到为什么它在 2022-10-20
上掉东西。
为了缓解这种情况,您可以执行以下操作:
select
creation_date
from sample_data
where cast(creation_date as date) between '2022-10-19' and '2022-10-20'