Как конвертировать varchar в дату в php mysql?

У меня в базе данных дата fetcha_pago в формате: «08-Abr-2016» и это varchar. Когда я делаю следующее:

STR_TO_DATE(fecha_pago, '%d-%M-%Y')

Это не работает, потому что дата на испанском языке. Это должен быть «апрель» вместо «абр». Есть ли способ уважать «Абр» за месяц?

1

Решение

Хранение дат в виде строк вызывает всевозможные проблемы, и локаль является одной из них. Если вы можете преобразовать их в Формат ISO-8601, YYYY-MM-DD HH:MM:SS в DATE или же DATETIME колонка.

Форматирование даты должно выполняться в PHP и только тогда, когда вы знаете локаль, в которую вы рендерите. Все в базе данных должно храниться в нейтральном формате. Строковые даты бесполезны, они не могут быть отсортированы или проиндексированы.

Вам, вероятно, придется соединить двенадцать REPLACE() заявления вместе переписать название каждого месяца:

STR_TO_DATE(REPLACE(REPLACE(fetcha_pago, 'Ene', 'Jan'), 'Abr', 'Apr'), '%d-%M-%Y')

Это всего два уровня, но вы можете расширить, чтобы охватить все те, которые отличаются.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]