Исправление старой ошибки в поле даты MySQL - PullRequest
1 голос
/ 30 декабря 2011

В моей таблице есть поле даты, в котором хранятся даты из формы в строке «День недели», «Месяц дня», «Год».

Пример: среда, 02 ноября 2010 г.

theПоле также varchar.

Можно ли перебрать всю таблицу с помощью сценария php, чтобы преобразовать даты в формат даты mysql или выполнить это с помощью запроса SQL?

Я не уверен, что могу подготовить некоторые определенные статистические отчеты, которые включают выбор определенных дат и диапазонов дат в формате, который я имею сейчас.Какие у меня варианты?

Ответы [ 2 ]

2 голосов
/ 30 декабря 2011

Не нужно вовлекать PHP.Это можно сделать непосредственно в MySQL:

ALTER TABLE yourtable ADD fixeddate date;
UPDATE yourtable SET fixeddate=STR_TO_DATE(bad_date_field, '%W, %d, %M %Y');

соответствующие документы здесь: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date

1 голос
/ 30 декабря 2011

PHP имеет встроенный класс с именем DateTime.Вот фрагмент кода, который должен помочь вам начать работу.

$date = DateTime::createFromFormat('l, d, F Y', 'Wednesday, 02, November 2010');
echo $date->format('Y-m-d');

Более подробную информацию об этом классе вы можете найти в http://au.php.net/manual/en/book.datetime.php

...