我搜索了这个转换并找到了相反的结果。
我正在使用 Graph API 拉取 Facebook 页面的动态,并且它给出的日期格式是 iso-8601。
我需要将其转换为 MySQL 时间戳以便添加到我的数据库中。大多数搜索结果都提供了从 MySQL 到 iso 的转换。
我能直接进行转换吗,还是必须要先转换成 Unix 格式再转换成 MySQL 格式之类的操作?
我搜索了这个转换并找到了相反的结果。
我正在使用 Graph API 拉取 Facebook 页面的动态,并且它给出的日期格式是 iso-8601。
我需要将其转换为 MySQL 时间戳以便添加到我的数据库中。大多数搜索结果都提供了从 MySQL 到 iso 的转换。
我能直接进行转换吗,还是必须要先转换成 Unix 格式再转换成 MySQL 格式之类的操作?
在您的更新语句中使用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
函数需要两个参数: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
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
添加第二部分中指定的偏移量。
SET time_zone='+00:00'
- O. Jones