NULL-значения в преобразовании строки в дату - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть таблица со следующими данными:

logs.ip               logs.fecha                logs.metodo
66.249.93.79          19/Nov/2018:03:46:33      GET

Все столбцы данных являются строковыми, и я хочу преобразовать logs.fecha в дату в следующем формате: ГГГГ-ММ-дд ЧЧ: мм:ss

Я пытаюсь выполнить следующий запрос:

SELECT TO_DATE(from_unixtime(UNIX_TIMESTAMP(fecha, 'yyyy-MM-dd'))) FROM logs

Результаты запроса равны NULL во всех строках.

Как сделать строку преобразования в дату для всех строк?Я знаю, что должен использовать ALTER TABLE, но я не знаю, как это сделать.

Спасибо

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Причина, по которой вы получаете null, заключается в том, что формат входной строки отличается от формата ввода, переданного в unix_timestamp.Второй аргумент unix_timestamp должен указывать формат строки первого аргумента.В from_unixtime вы можете указать желаемый формат вывода.Если ничего не указано, действительный ввод для from_unixtime возвращает вывод в формате yyyy-MM-dd.

Ошибка может быть исправлена, как показано ниже.

from_unixtime(unix_timestamp(fecha,'dd/MMM/yyyy:HH:mm:ss'),'yyyy-MM-dd HH:mm:ss')
0 голосов
/ 20 декабря 2018

Вам просто нужно сообщить Oracle формат даты, которую вы читаете с TO_DATE.Попробуйте:

SELECT TO_DATE(fecha,'DD/MON/YYYY:HH:MI:SS') FROM logs
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...