2010-10-24 3 views
0

У меня есть столбец MySQL varchar с датами, хранящимися в формате dd-M-yyyy. Например:Преобразование dd-M-yyyy в mySQL datetime

Row 1: 12-jan-2010 
Row 2: 23-jun-2016 

Каков наилучший способ преобразования этого в формат даты и времени mySQL с использованием php?

+0

Параметр 'типа date' будет достаточно, если вы не обязаны хранить время суток. Просто говорю. – BoltClock

+0

Верно, но я предпочту использовать datetime для будущего доказательства. Столбец содержит значение последней измененной даты для продукта, и я могу видеть использование более точных отчетов о дате/времени по треку. –

ответ

5

Может быть сделан без использования PHP:

update myTable set newcol = STR_TO_DATE(oldcol, '%d-%M-%Y') 
+0

+1 Не нужно беспокоиться о проблемах с 'SELECT', конвертировать в PHP, а затем' UPDATE' для каждой строки. – BoltClock

+0

Бинго! Спасибо, это хорошо сделало трюк. –

1

Во-первых, убедитесь, что ваш часовой пояс UTC: см. date_default_timezone_set().

Используйте strtotime() для преобразования существующей строки в метку времени UNIX.

Используйте date(), чтобы преобразовать его в тот или иной стандартный формат, например. Y-m-d H:i:s.

Верните его в MySQL.

Смежные вопросы