aws-athena-format和filter-datetime

uklbhaso  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(246)

我有一张table,上面有两种不同的日期格式:
年月日。需要的日期格式是d/m/y
我可以选择日期列,并做检查和格式,如果日期是在错误的格式。
这是我当前的sql查询:

SELECT COALESCE(TRY(date_format(date_parse(tbl.date, %d/%m/%Y), %d/%m/%Y)),
                TRY(date_format(date_parse(tbl.date, %m/%d/%Y), %d/%m/%Y))) as date
FROM xxx

这修复了不匹配的日期…但是我还需要查询一个日期范围,例如最近7天。
如果我添加where语句,它将不会执行,因为我已经查询了较早的日期。
如何根据给定的范围(过去7天)设置日期格式并进行筛选?

llew8vvj

llew8vvj1#

在由presto实现的ansisql中,雅典娜的基础是 WHERE 子句不能引用 SELECT 投影,所以你需要一个辅助查询:

SELECT *
FROM (
  SELECT COALESCE(TRY(date_parse ....... AS date
  FROM xxx
)
WHERE date > current_date - INTERVAL '7' DAY

相关问题