【发布时间】:2012-01-25 02:36:51
【问题描述】:
有没有办法在 MySQL 中将字符串转换为 UNIX 时间戳?
例如,我有字符串2011-12-21 02:20pm,它需要采用 Unix 时间戳格式。
【问题讨论】:
有没有办法在 MySQL 中将字符串转换为 UNIX 时间戳?
例如,我有字符串2011-12-21 02:20pm,它需要采用 Unix 时间戳格式。
【问题讨论】:
虽然@a'r 已经给出了正确的答案,但我还是想在这里补充一点,两个参数 STR_TO_DATE() 函数,'日期字符串'格式和'日期格式'字符串,应该有匹配的 '-' 和 ':' 的位置。
例如以下 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 个参数具有匹配的 '-' 和 ':' 位置
【讨论】:
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')
);
【讨论】: