2011-12-18 24 views
30

Tengo una tabla con una columna DATETIME. Me gustaría SELECCIONAR este valor de fecha y hora e INSERTARLO en otra columna.MySQL: inserte fecha y hora en otro campo de fecha y hora

lo hice (nota: '2011-12-18 13:17:17' es el valor de la antigua SELECT me dio del campo DATETIME):

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

y obtener

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 

Ok, entiendo que es incorrecto poner una cadena sin comillas allí, pero ¿es DATETIME solo una cadena en primer lugar? ¿Qué hacer Puse allí? Todo lo que quiero es transferir de forma fiable el valor existente a un nuevo campo de fecha y hora ...

EDIT:

La razón que pido es: Tengo esta definición especial, DATETIME, y de alguna manera pensé que me da seguridad y otras ventajas al manejar las fechas. Ahora parece que es simplemente un VARCHAR especializado, por así decirlo.

Gracias por sus respuestas, parece que este es de hecho el comportamiento previsto.

Respuesta

56

Según la documentación de MySQL, debería poder incluir esa cadena de fecha y hora entre comillas simples ('AAAA-MM-DD HH: MM: SS') y debería funcionar. Mira aquí: Date and Time Literals

+0

Funciona, gracias. Creo que pienso demasiado en objetos cuando se trata de bases de datos relacionales ... – marimba

7

Trate

UPDATE products SET former_date=20111218131717 WHERE id=1 

Alternativamente, es posible que desee buscar en el uso del STR_TO_DATE (ver STR_TO_DATE(str,format)) función.

7

para MySQL probar este

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

verification-

seleccionar * de tabla1
datetime output- = 12/01/2014 00:00:00