У меня есть простая проблема, для которой я нашел решение в раннем тестировании, но не могу сейчас реплицироваться, что мне нужно сделать это по-настоящему.MySQL создает поле Datetime из поля Timestamp
Мы переводим нашу новостную систему с CuteNews в нашу самонастраиваемую систему MySQL. Все новости были импортированы в базу данных, но поле даты - Timestamp. Я создал новое поле (created_date) и хочу заполнить это из метки времени в поле даты.
Как я уже сказал, я делал это ранее в раннем пробном прогоне и был убежден, что запрос, который я использовал, через PhpMyAdmin был по строкам UPDATE News set created_date=UNIX_TIMESTAMP(date)
. Вероятно, это немного неправильно, поскольку я нахожусь на работе и размещаюсь с телефона, но это было именно так.
Ошибок не было, но все поля 'created_date' были заполнены как 0000-00-00 00:00
не с датой, взятой из метки времени в поле даты.
Я знаю, что это просто и знаю, что ответ будет очевиден, когда я его увижу, но любые указатели будут с благодарностью оценены!
Steve.
EDIT: чтение назад я понял, что то, что я разместил, может ввести в заблуждение. В моем первоначальном пробном прогоне с использованием запроса на обновление поместите правильное DateTime в поле на основе соответствующего поля Timestamp. Только на этот раз он показывает 0000-00-00 00:00.
Ps. Спасибо за форматирование. Это немного неудобно на телефоне!
Какое поле ТИП 'created_date'? – itsols
Похоже, что MySQL считает, что данные в ваших столбцах _date_ недопустимы, поэтому они преобразуют их в '0000-00-00 00: 00: 00'. Вы уверены, что они действительны? Я быстро взглянул на [документацию по MySQL] (http://dev.mysql.com/doc/refman/5.1/en/datetime.html) на типы данных даты, и в комментариях есть замечания по добавлению 'INTERVAL 0 DAY' к недействительным датам, чтобы автоматически сделать их действительными - возможно, что-то попробовать. Я ** надеюсь, что вы экспериментируете с запросом 'SELECT', прежде чем пытаться с помощью' UPDATE' :-) – nurdglaw
created_date - это поле DateTime. –