Приведение типа String к Unix Дата Амазон Афина - PullRequest
0 голосов
/ 22 октября 2018

Я хочу получить результат в Amazon Athena, где я могу подсчитать количество созданных пользователей по дням (или, может быть, по месяцам)

Но до этого мне приходилось конвертировать метку времени unix в другую датуформат.И здесь я терплю неудачу.

Моя последняя цель - преобразовать метку времени этого типа:

1531888605109

Во что-то вроде:

2018-07-18

Согласно Epoch Converter

Но когда я пытаюсь применить решение, я увидел в этом вопросе: Время чтения Unix вдата в Presto

Я получил ошибку:

[Simba] AthenaJDBC Ошибка клиента AWS Athena.SYNTAX_ERROR: строка 1:13: неожиданные параметры (varchar) для функции from_unixtime.Ожидаемое: from_unixtime (double), from_unixtime (double, bigint, bigint), from_unixtime (double, varchar (x)) [Состояние SQL = HY000, код ошибки БД = 100071]

Это мой запрос:

select   cast(from_unixtime(created)as date) as date_creation, 
         count(created) 
from     datalake.test
group by date_creation

Может быть, мне нужно преобразовать sctring, потому что тип данных поля не является датой.

Описание моей таблицы: Ссылка на описание таблицы

1 Ответ

0 голосов
/ 25 октября 2018

строка 1:13: неожиданные параметры (varchar) для функции from_unixtime.Ожидаемое: from_unixtime (double)

Это означает, что ваши временные метки, даже если они выглядят числовыми, равны varchar с.Вам нужно добавить CAST к cast(from_unixtime(created)as date), например:

CAST(from_unixtime(CAST(created AS bigint)) AS date)

Примечание. При работе с данными, относящимися ко времени, помните, что https://github.com/prestosql/presto/issues/37 еще не разрешено в Presto.

...