str_to_date возвращает null+mysql

Когда я пытаюсь преобразовать varchar в дату, я получаю значения Null в ответ.

У меня есть значения, как 05 марта 2015 года в моей колонке.

Я выполняю следующий запрос.

select STR_TO_DATE('n.Invoice_date','%d-%c-Y') from table n;

Как только я запускаю запрос выше, я получаю нулевые значения в ответ.

Я хочу представить новый столбец в формате даты.

2 ответа

Обратите внимание, что буквенная строка 'n.invoice_date' недействительная дата Что вы имеете в виду:

SELECT STR_TO_DATE(n.invoice_date, '%d-%b-%Y') FROM TABLE n

Ваша ошибка в использовании %c вместо %b чтобы получить дату. Вы смешали форматирование даты с созданием значения даты. Это должно сделать это:

SELECT DATE_FORMAT(STR_TO_DATE(n.invoice_date,'%d-%b-%Y'), '%d-%c-%Y') FROM table n;

Результат: 05-3-2015

Здесь вы сначала создаете дату с STR_TO_DATE который должен соответствовать формату, в котором он хранится в поле. Затем вы можете отформатировать его с DATE_FORMAT так, как вы хотите.

См. Документы MYSQL для получения дополнительной информации: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

Другие вопросы по тегам