Presto / SQL - Ошибка преобразования метки времени строки в дату - PullRequest
0 голосов
/ 01 марта 2019

ПРИМЕЧАНИЕ. Я выполняю запрос в обработчике команд presto и sql Qubole.

Я пытаюсь преобразовать строковую метку времени в дату, но ни один из параметров не работает.

Моя строка времени выглядит как 2017-03-29 10:32:28.0, и я хочу, чтобы она была похожа на 2017-03-29

Я пробовал следующие запросы, чтобы преобразовать эту строку отметку времени для получения даты

1. select cast(created as date) from table1

Значение не может быть приведено к дате: 2017-05-26 17: 23: 58.0

2. select cast(from_iso8601_timestamp(created) as date) from table1

Неверный формат: "2014-12-19 06: 06: 36,0 "искажено в" 06: 06: 36,0 "

3. select date(created) from table1

Значение не может быть приведено к дате: 2012-10-24 13: 50: 00,0

Как я могу преобразовать эту метку времени в date в presto / sql?

1 Ответ

0 голосов
/ 01 марта 2019

Как объясняется в документации , prestoDB, похоже, ожидает метки времени в формате '2001-08-22 03:04:05.321', а даты в '2001-08-22'.

. Одним из решений будет использование строковая функция для извлечения соответствующей части строки перед ее преобразованием.Мы знаем, что часть даты расположена перед первым пробелом в строке, поэтому.

Если вам нужна часть даты в виде строкового типа данных :

split_part(created, ' ', 1)

Если вам нужна часть даты как тип данных :

cast(split_part(created, ' ', 1) as date)
...