J'essaie de convertir datetime en horodatage mais mysql me donne des avertissements et les valeurs converties sont fausses. Voici la requête 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;
Avertissements
+---------+------+--------------------------------------------------------------------------+
| Level | Code | Message |
+---------+------+--------------------------------------------------------------------------+
| Warning | 1411 | Incorrect datetime value: '2011-06-11 20:29:02' for function str_to_date |
+---------+------+--------------------------------------------------------------------------+
Résultat
+---------------------+---------------------+
| date_added | date_added |
+---------------------+---------------------+
| 2012-02-23 06:12:45 | 2012-12-23 19:08:33 |
+---------------------+---------------------+
J'ai également essayé de suivre la requête mais elle montre 0000-00-00 00:00:00 dans le champ d'horodatage.
UPDATE table1 A, table2 B SET B.date_added=UNIX_TIMESTAMP(A.date_added) WHERE A.id=B.id;
Essayez ceci s'il vous plaît:
UPDATE table1 A, table2 B
SET B.date_added = FROM_UNIXTIME(A.date_added)
WHERE A.id=B.id
Référence . Il semble que vous ayez un problème avec la façon dont vous formatez le tampon de date. Veuillez également consulter cet article: Dois-je utiliser le champ 'datetime' ou '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');
suffit pour convertir un datetime mysql en un horodatage.
Sur MySQL 5.5, cela fonctionne bien:
UPDATE `some_table`
SET `timestamp_col` = `datetime_col`
avec datetime_col
de tapez DATETIME
et timestamp_col
de tapez TIMESTAMP
.
C'est-à-dire: pas besoin de conversion de type explicite.
Vous utilisez '%M %d %Y %h:%i%p'
comme format de date, mais l'avertissement affiche une chaîne de date '2011-06-11 20:29:02', qui ne correspond pas à ce format. C'est-à-dire que l'année est la première et l'heure est au format 24 heures.
Vous pouvez utiliser '%Y-%M-%d %T'
à la place, ce format correspondrait aux données.
En savoir plus sur les codes de format de date ici: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format