Подтвердить что ты не робот

MySQL: вставить datetime в другое поле datetime

У меня есть таблица с столбцом DATETIME. Я хотел бы ВЫБРАТЬ это значение datetime и вставить его в другой столбец.

Я сделал это (примечание: "2011-12-18 13:17:17" - это значение, которое бывший SELECT дал мне из поля DATETIME):

UPDATE products SET former_date=2011-12-18 13:17:17 WHERE id=1

и получим

    1064 - You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version 
for the right syntax to use near '13:17:17 WHERE itemid=1' at line 1

Хорошо, я понимаю, что неправильно помещать строку без кавычек, но DATETIME только строка в первую очередь? Что мне там положить? Все, что я хочу, надежно переносит существующее значение на новое поле datetime...

EDIT:

Я задаю вопрос: у меня есть это специальное определение DATETIME, и почему-то я подумал, что это дает мне некоторую безопасность и другие преимущества при обработке дат. Кажется, это просто специализированный VARCHAR, так сказать.

Спасибо за ваши ответы, похоже, это действительно намеченное поведение.

4b9b3361

Ответ 1

В соответствии с документацией MySQL вы должны просто заключить эту строку datetime в одинарные кавычки ( "YYYY-MM-DD HH: MM: SS" ), и она должна работать. Смотри сюда: Литералы даты и времени

Ответ 2

Попробуйте

    UPDATE products SET former_date=20111218131717 WHERE id=1

В качестве альтернативы вам может понадобиться использовать STR_TO_DATE (см. STR_TO_DATE (str, format)).

Ответ 3

для MYSQL попробуйте это

INSERT INTO table1 (myDatetimeField) VALUES (STR_TO_DATE ('12 -01-2014 00:00:00 ','% m-% d-% Y% H:% i:% s ');

проверка-

выберите * из таблицы1
output- datetime = 2014-12-01 00:00:00