month - Convertir el datetime de MySQL al timestamp
todatetimestring (4)
Estoy tratando de convertir fecha y hora en marca de tiempo pero mysql me está dando advertencias y también los valores convertidos son incorrectos. Aquí está la consulta SQL
UPDATE table1 A, table2 B SET B.date_added=UNIX_TIMESTAMP(STR_TO_DATE(A.date_added, ''%M %d %Y %h:%i%p'')) WHERE A.id=B.id;
Advertencias
+---------+------+--------------------------------------------------------------------------+
| Level | Code | Message |
+---------+------+--------------------------------------------------------------------------+
| Warning | 1411 | Incorrect datetime value: ''2011-06-11 20:29:02'' for function str_to_date |
+---------+------+--------------------------------------------------------------------------+
Resultado
+---------------------+---------------------+
| date_added | date_added |
+---------------------+---------------------+
| 2012-02-23 06:12:45 | 2012-12-23 19:08:33 |
+---------------------+---------------------+
También intenté seguir la consulta pero muestra 00:00:00 en el campo de marca de tiempo.
UPDATE table1 A, table2 B SET B.date_added=UNIX_TIMESTAMP(A.date_added) WHERE A.id=B.id;
En MySQL 5.5 esto funciona bien:
UPDATE `some_table`
SET `timestamp_col` = `datetime_col`
con datetime_col
de tipo DATETIME
y timestamp_col
de tipo TIMESTAMP
.
Es decir: no hay necesidad de conversión explícita de tipos.
Estás usando ''%M %d %Y %h:%i%p''
como formato de fecha, pero la advertencia muestra una cadena de fecha ''2011-06-11 20:29:02'', que no coincide con eso formato. Es decir, el año es el primero, y la hora es en formato de 24 horas.
Podría usar ''%Y-%M-%d %T''
lugar, ese formato coincidirá con los datos.
Vea más sobre los códigos de formato de fecha aquí: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format
Intenta esto por favor:
UPDATE table1 A, table2 B
SET B.date_added = FROM_UNIXTIME(A.date_added)
WHERE A.id=B.id
Reference . Parece que tienes un problema con la forma en que formateas la fecha stammp. También mire en esta publicación: ¿Debo usar el campo ''datetime'' o ''timestamp''?
UPDATE table1 A, table2 B SET B.date_added=UNIX_TIMESTAMP(A.date_added) WHERE A.id=B.id;
UNIX_TIMESTAMP(''2015-01-15 12:00:00'');
es suficiente para convertir un datetime mysql en una marca de tiempo.