在Hive/Impala SQL中按日期查询时忽略timestamp字段时分秒的方法
Impala SQL按天筛选timestamp字段的实现方法
以下是几种常用的实现方案,可根据实际场景选择:
直接转换为日期类型(最直观)
用Impala内置的DATE()函数将timestamp类型的collection_date转换为日期类型,自动忽略时分秒部分,筛选指定日期的写法如下:WHERE DATE(collection_date) = '2024-05-20'把示例中的
'2024-05-20'替换为你需要筛选的目标日期即可。时间范围查询(性能最优)
大数据量表优先选择这种方案,不需要对字段做函数计算,不会导致索引失效,查询效率更高:WHERE collection_date >= '2024-05-20 00:00:00' AND collection_date < '2024-05-21 00:00:00'逻辑是匹配大于等于目标日期零点、小于下一天零点的所有时间,天然忽略了时分秒的影响。
DATE_TRUNC函数截断(灵活度高)
用DATE_TRUNC()函数将时间截断到天维度,也是常用的写法:WHERE DATE_TRUNC('day', collection_date) = '2024-05-20 00:00:00'
内容的提问来源于stack exchange,提问作者user16812832
相关产品推荐
相关产品推荐

