我希望在Amazon Athena上获得一个结果,我可以算出按天(或按月)创建的用户数量
但是在此之前,我必须将unix时间戳转换为另一种日期格式。这就是我失败的地方。
我的最后一个目标是转换这种类型的时间戳:
1531888605109
类似:
2018-07-18
但是当我尝试应用此解决方案时,我在此问题中看到了:Casting unix time to date in Presto
我得到了错误:
[Simba] AthenaJDBC AWS Athena客户端引发了一个错误。语法:错误的行1:13:函数from_unixtime的意外参数(varchar)。预期:from_unixtime(double),from_unixtime(double,bigint,bigint),from_unixtime(double,varchar(x))[SQL状态= HY000,DB错误代码= 100071]
这是我的查询
select cast(from_unixtime(created)as date) as date_creation,
count(created)
from datalake.test
group by date_creation
由于字段的数据类型不是日期,也许我不得不放弃sctring。
答案 0 :(得分:0)
第1:13行:函数from_unixtime的意外参数(varchar)。预期:from_unixtime(double)
这意味着您的时间戳(即使它们显示为数字)也是varchar
秒。
您需要向cast(from_unixtime(created)as date)
添加CAST,例如:
CAST(from_unixtime(CAST(created AS bigint)) AS date)
注意:在处理与时间有关的数据时,请记住https://github.com/prestosql/presto/issues/37在Presto中尚未解析。