将MySQL的日期时间转换为时间戳



我试图将日期时间转换为时间戳,但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_colDATETIME型,timestamp_colTIMESTAMP型。

即:不需要显式类型转换

您使用'%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

相关内容

  • 没有找到相关文章

最新更新