如何将iso-8601时间戳转换为MySQL DATETIME

时间:2012-06-27 12:16:11

标签: mysql facebook datetime timestamp

我已经搜索过这个转换,并发现了相反的情况。

我使用图表api提取facebook页面提要,它提供的日期格式为iso-8601。

我需要将其转换为mysql时间戳才能将其添加到我的数据库中。大多数搜索结果都提供了mysql到iso。

我可以直接转换,还是必须转换为unix然后mysql或类似的东西。

2 个答案:

答案 0 :(得分:3)

在更新语句中使用mysql函数STR_TO_DATE(str,format)

 UPDATE [table] SET [field] = STR_TO_DATE([your input date], '%Y-%m-%dT%H:%i:%s+0000');

STR_TO_DATE函数有2个参数1)你的日期字符串和2)输出的格式,格式可以与mysql DATE_FORMAT()相同的方式参见: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

答案 1 :(得分:2)

SELECT STR_TO_DATE( '2012-06-25T20:05:13+0000', '%Y-%m-%dT%H:%i:%s+0000' ) 

适用于时区设置为+0000的日期(FB Graph API通常返回的内容)。

我需要将日期时间转换为+0000以外的时区,您可以先拆分该日期字符串,在第一部分执行STR_TO_DATE,然后使用DATE_ADD添加第二部分中指定的偏移量。