Amazon Athena如何查询完整昨日数据?现有时间函数写法失效
获取完整昨日CET时区数据的查询修改方案
要获取完整的昨日(CET时区)数据,你需要将查询范围精准限定在昨日00:00:00至今日00:00:00之前的区间,这样就能覆盖一整天的所有数据,而非过去24小时的片段数据。
修改后的完整查询语句如下:
SELECT mc_type, cast(from_iso8601_timestamp(event_time) AS date) AS event_date, query_cost FROM table WHERE event_time >= to_iso8601(date_trunc('DAY', date_add('DAY', -1, CURRENT_DATE))) AND event_time < to_iso8601(date_trunc('DAY', CURRENT_DATE))
关键说明:
- 左边界设置:
date_trunc('DAY', date_add('DAY', -1, CURRENT_DATE))会获取CET时区下昨日的起始时间(00:00:00),转换成ISO8601格式后作为查询的起始点,确保包含昨日从0点开始的所有数据。 - 右边界设置:
date_trunc('DAY', CURRENT_DATE)获取CET时区下今日的起始时间(00:00:00),用<进行比较而非<=,可以避免误包含今日0点的记录,确保查询范围截止到昨日23:59:59。 - 之前写法的问题:一是存在语法错误(缺失闭合括号、多余的函数括号),二是仅设置了左边界未限定右边界,导致无法准确锁定完整的昨日日期区间。
内容的提问来源于stack exchange,提问作者Zole72
相关产品推荐
相关产品推荐

