Строка в формате даты ГГГГ-ММ-ДД в Афине

Итак, я просмотрел документацию и предыдущие ответы здесь, но, похоже, не могу понять этого.

У меня есть STRING, обозначающий дату. Нормальный вывод выглядит так:

2018-09-19 17:47:12

Если я сделаю это, я верну его в следующем формате 2018-09-19 17:47:12.000:

SELECT
date_parse(click_time,'%Y-%m-%d %H:%i:%s') click_time
FROM
table.abc

Но это не тот результат, который мне нужен. Я просто пытался показать, что близок, но чего-то явно упускал. Когда я меняю click_time на date_parse(click_time,'%Y-%m-%d'), он отправляет обратно INVALID_FUNCTION_ARGUMENT: Invalid format: "2018-09-19 17:47:12" is malformed at " 17:47:12"

Так что явно что-то я делаю неправильно, чтобы заставить его просто вернуть 2018-09-19.


person gooponyagrinch    schedule 11.10.2018    source источник
comment
Я не могу найти документацию по всему этому, но логически вы хотите проанализировать дату и время или метку времени или что-то еще, указав формат существующий, а затем выполнить второе преобразование из метки даты и времени обратно в строка с желаемым форматом. Итак, первая часть уже работает - я ожидал увидеть функцию date_format или что-то подобное   -  person Jon Skeet    schedule 11.10.2018


Ответы (1)


date_parse преобразует строку в метку времени. Согласно документации date_parse делает следующее:

date_parse(string, format) → timestamp

Он анализирует строку на отметку времени, используя предоставленный формат.

Итак, для вашего варианта использования вам необходимо сделать следующее:

cast(date_parse(click_time,'%Y-%m-%d %H:%i:%s')) as date ) 

Для получения дополнительной информации вы можете перейти по приведенной ниже ссылке на интерактивную документацию prestodb https://prestodb.github.io/docs/current/functions/datetime.html

person NK7983    schedule 19.02.2019