2011-12-21 69 views
21

有没有什么办法将字符串转换为UNIX中的UNIX时间戳?字符串到MySQL中的时间戳

例如我有字符串2011-12-21 02:20pm需要在unix时间戳格式。

+1

http://dev.mysql.com/doc/refman/5.5/zh-CN/date-and-time-functions.html#function_unix-timestamp – cristian 2011-12-21 08:56:35

回答

36

UNIX_TIMESTAMP()的伎俩:

SELECT UNIX_TIMESTAMP('2011-12-21 14:20:00'); 

然而,UNIX_TIMESTAMP()功能只需要一个标准的MySQL格式的日期。如果你想使用AM/PM符号,你首先需要使用STR_TO_DATE这样的:

SELECT UNIX_TIMESTAMP(
    STR_TO_DATE('2011-12-21 02:20pm', '%Y-%m-%d %h:%i%p') 
); 
17

虽然@ a'r已经给出了正确的答案,仍然是我在这里想补充的是,这两个参数STR_TO_DATE()函数,'日期字符串'格式和'日期格式'字符串应该具有匹配的' - '和':'的位置。

例如以下4个查询返回完全相同的结果2014年5月28日11点三十分10秒

SELECT STR_TO_DATE('2014-05-28 11:30:10','%Y-%m-%d %H:%i:%s'); 

SELECT STR_TO_DATE('20140528 11:30:10','%Y%m%d %H:%i:%s'); 

SELECT STR_TO_DATE('2014-05-28 113010','%Y-%m-%d %H%i%s') ; 

SELECT STR_TO_DATE('20140528 113010','%Y%m%d %H%i%s'); 

注: 2个PARAMS到STR_TO_DATE()中的每个功能查询具有与' - '和''匹配的位置: