AWS雅典娜不认识日期



我有两个环境-prod和test。我正试图找出一个查询,让Athena只显示特定月份的访问日志。

我这样做是基于YYYY-MM-DD格式的列"date",底层数据是s3中的gzipped.txt文件。

我的日志仅限于过去2个月。因为我想自动化查询,所以我宁愿使用间隔月份减法。

因此,当在测试环境中运行时,下面的子句返回正确的响应,向我显示了具有八月的行WHERE month(date) = MONTH(current_date - interval '1' month)

不幸的是,当我在prod上跑步时,我得到了七月和八月。

感觉好像我什么都试过了,但还是搞不清楚出了什么问题。我尝试了subselects,将WHERE语句的两边都投给VARCHAR,实际上似乎没有任何影响。

有人有主意吗?

对于任何再次偶然发现我的问题的人:(我找到了一个答案——一个肮脏的答案,但仍然有效。

我最初的疑问是,雅典娜不在乎这个月我想要

SELECT date,
time,
bytes,
request_ip,
method,
uri,
status,
user_agent
FROM "default"."logs"
WHERE month(date) = MONTH(current_date - interval '1' month)
AND user_agent LIKE '%gecko%';

显示我想要的月份的工作查询:

SELECT * 
FROM
(SELECT date,
MONTH(date) as mn,
time,
bytes,
request_ip,
method,
uri,
status,
user_agent
FROM "default"."logs"
WHERE user_agent LIKE '%gecko%') as in_table
WHERE mn = MONTH(current_date - interval '1' month);

相关内容

  • 没有找到相关文章

最新更新