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

Преобразование MySQL datetime в timestamp

Я пытаюсь преобразовать datetime в timestamp, но mysql дает мне предупреждения, а также преобразованные значения ошибочны. Вот запрос 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;

Предупреждения

+---------+------+--------------------------------------------------------------------------+
| Level   | Code | Message                                                                  |
+---------+------+--------------------------------------------------------------------------+
| Warning | 1411 | Incorrect datetime value: '2011-06-11 20:29:02' for function str_to_date |
+---------+------+--------------------------------------------------------------------------+

Результат

+---------------------+---------------------+
| date_added          | date_added          |
+---------------------+---------------------+
| 2012-02-23 06:12:45 | 2012-12-23 19:08:33 |
+---------------------+---------------------+

Я также пробовал следующий запрос, но он показывает 0000-00-00 00:00:00 в поле timestamp.

UPDATE table1 A, table2 B SET B.date_added=UNIX_TIMESTAMP(A.date_added) WHERE A.id=B.id;
4b9b3361

Ответ 2

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'); достаточно для преобразования mysql datetime в метку времени.

Ответ 3

В MySQL 5.5 это прекрасно работает:

UPDATE `some_table`
SET `timestamp_col` = `datetime_col`

с datetime_col введите DATETIME и timestamp_col тип TIMESTAMP.

То есть: нет необходимости явного преобразования типов.

Ответ 4

Вы используете '%M %d %Y %h:%i%p' как формат даты, но предупреждение показывает строку даты '2011-06-11 20:29:02', которая не соответствует этому формату. I., год первый, и время находится в 24-часовом формате.

Вместо этого вы можете использовать '%Y-%M-%d %T', этот формат будет соответствовать данным.

Подробнее о кодах формата даты: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format