如何在BigQuery中添加日期过滤条件 筛选指定时间段的目标数据
BigQuery按created_at字段过滤指定日期范围的实现方法
根据created_at字段的实际类型,可选择对应的过滤写法:
若created_at为DATE类型
直接使用闭区间匹配即可,示例语句如下:
SELECT * FROM `你的数据集名.你的表名` WHERE created_at BETWEEN '2021-09-25' AND '2021-09-26'
若created_at为TIMESTAMP/DATETIME类型
有两种常用写法,可按需选择:
- 写法1:转换为DATE后匹配,逻辑更直观
注意需根据数据实际时区调整第二个参数,避免时区导致的日期偏移:SELECT * FROM `你的数据集名.你的表名` WHERE DATE(created_at, 'UTC') BETWEEN '2021-09-25' AND '2021-09-26' - 写法2:直接做时间范围判断,性能更优,适合大数据量场景
结束值使用2021-09-27的零点做小于判断,可完整覆盖9月26日全天的所有时间点,不会遗漏毫秒级的时间记录:SELECT * FROM `你的数据集名.你的表名` WHERE created_at >= TIMESTAMP('2021-09-25 00:00:00', 'UTC') AND created_at < TIMESTAMP('2021-09-27 00:00:00', 'UTC')
如果你的created_at存储为字符串格式,需要先通过PARSE_DATE/PARSE_TIMESTAMP函数转换为对应时间类型后再过滤,避免字符串匹配出现逻辑错误。
内容的提问来源于stack exchange,提问作者Aditya Sharma
相关产品推荐
相关产品推荐

