athena分区是按年/月/日来划分的,并通过glue作为字符串列导入。因此day是一个类型字符串。我的要求是从当前时间戳中提取日期,并与我的日期列/分区进行比较。
SELECT *
FROM "db1"."tbl1"
WHERE year = cast(extract(year from (CURRENT_DATE - interval '7' day)) as varchar)
AND month = lpad(cast(extract(month from (CURRENT_DATE - interval '7' day)) as varchar),2,'0')
AND day = lpad(cast(extract(day from (CURRENT_DATE - interval '7' day)) as varchar),2,'0')
limit 10
这是一天。我要从现在到过去的7天。
2条答案
按热度按时间p1tboqfb1#
我通过创建最后七天的序列并从这些值中提取年、月和日来实现这一点。我的雅典娜数据中的年/月/日列存储为整数,因此我不需要强制转换
EXTRACT
函数,但我在这个答案中转换结果以匹配您的用例。camsedfj2#
我想是在处理presto文档
date_parse
这是一个更简单的方法。以下是选择的步骤current_date
concat concat(年、月、日)然后date_parse
```cast(date_parse(concat(year, month, day), '%Y%m%d') as date) BETWEEN current_date - interval '7' day AND current_date