gpt4 book ai didi

mysql - 当使用 mySQL 和 PrestoDB 的时间戳是 big int 时,有没有办法在 AWS Athena 中拉取数据范围?

转载 作者:行者123 更新时间:2023-11-30 21:26:09 27 4
gpt4 key购买 nike

我正在尝试从我特别感兴趣的表中查询,以从 timestamp 列中提取过去 7 天。 timestamp 列已作为 big int 存储在表中。

我在使用 FROM_UNIXTIME(timestamp) 将“big int”时间戳转换为“datetime”后尝试使用它。

我尝试提取过去 7 天(从 11 月 15 日开始)的时间戳的查询如下 -

SELECT * FROM activation WHERE FROM_UNIXTIME(timestamp) > '+51819-11-15' LIMIT 10;

基本上在将“big int”转换为“datetime”之后,我查看了时间戳列,提取了一个日期,在上面的示例中显示我获取的数据是 2019 年 11 月 15 日(根本不是最有效的方法运行此查询)

当我在 Athena 中运行查询时,出现以下错误-

SYNTAX_ERROR: line 1:57: '>' cannot be applied to timestamp, varchar(12)

有人可以帮助我以更好/更有效的方式在 Athena 中实现这一目标。

谢谢!

最佳答案

我建议反转逻辑并将存储的 unix 时间戳与代表 7 天前的时间戳的值进行比较。这种方法的优点是查询将愉快地使用 timestamp 列上的现有索引。

在 MySQL 中:

SELECT * FROM activation WHERE timestamp > UNIX_TIMESTAMP() - 7 * 24 * 60 * 60 LIMIT 10;

7 * 24 * 60 * 60 以秒表示 7 天。

也可以这样表达:

SELECT * FROM activation WHERE timestamp > UNIX_TIMESTAMP(NOW() - INTERVAL 7 DAY) LIMIT 10;

在 PrestoDB 中:

SELECT * 
FROM activation
WHERE timestamp > TO_UNIXTIME(CURRENT_TIMESTAMP - INTERVAL '7' DAY) LIMIT 10;

关于mysql - 当使用 mySQL 和 PrestoDB 的时间戳是 big int 时,有没有办法在 AWS Athena 中拉取数据范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58963481/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com