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