我有一个表,它提供了两种不同的日期格式:
d/m/Y & m/d/Y.所需的日期格式为 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 天(格式化我的日期和过滤器?
在 ANSI SQL 中 - 由 Presto 实现,Athena 基于 -WHERE
子句不能引用SELECT
投影,所以你需要一个 aubquery:
SELECT *
FROM (
SELECT COALESCE(TRY(date_parse ....... AS date
FROM xxx
)
WHERE date > current_date - INTERVAL '7' DAY