我试图将日期时间转换为时间戳,但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。
UPDATE table1 A, table2 B SET B.date_added=UNIX_TIMESTAMP(A.date_added) WHERE A.id=B.id;
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转换为Timestamp。
请试试:
UPDATE table1 A, table2 B
SET B.date_added = FROM_UNIXTIME(A.date_added)
WHERE A.id=B.id
参考。似乎你对日期戳的格式有问题。也请看看这个帖子:我应该使用字段'datetime'或& # 39;时间戳# 39;?
MySQL 5.5:
UPDATE `some_table`
SET `timestamp_col` = `datetime_col`
, datetime_col
为DATETIME
型,timestamp_col
为TIMESTAMP
型。
即:不需要显式类型转换
您使用'%M %d %Y %h:%i%p'
作为日期格式,但警告显示日期字符串'2011-06-11 20:29:02',这与该格式不匹配。即以年为首,时间为24小时制。
您可以使用'%Y-%M-%d %T'
代替,该格式将匹配数据。
在这里查看更多日期格式代码:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html function_date-format