繁体   English   中英

AWS Athena 无法识别日期?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM