有没有办法在MySQL中将字符串转换为UNIX时间戳?
例如,我有字符串2011-12-21 02:20pm
,需要采用unix时间戳格式。
答案 0 :(得分:48)
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')
);
答案 1 :(得分:22)
虽然@ a' r已经给出了正确的答案,但我想在这里添加的是两个参数 STR_TO_DATE()功能,'日期字符串&#39 ;格式和日期格式'字符串,应该匹配' - '和':'。
例如,在4次查询后返回完全相同的结果 2014-05-28 11:30: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');
注意:每个查询中 STR_TO_DATE()功能的2个参数具有匹配的' - '和':'