[英]AWS Athena not recognizing date?
我有两个环境 - prod 和 test。 我正在尝试找出 Athena 的查询,以便仅向我显示特定月份的访问日志。
我是根据 YYYY-MM-DD 格式的“日期”列来做的,基础数据是 s3 中的 gzipped.txt 文件。
我的日志仅限于过去 2 个月。 因为我想自动化查询,所以我宁愿使用间隔月减法。
所以 - 在测试环境中运行时,下面的子句返回正确的响应,向我显示八月WHERE month(date) = MONTH(current_date - interval '1' month)
行
不幸的是,在 prod 上运行时,我得到了 7 月和 8 月。
感觉就像我尝试了一切,但仍然无法弄清楚出了什么问题。 我尝试了子选择,将 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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.