【问题标题】:String to timestamp in MySQLMySQL中时间戳的字符串
【发布时间】:2012-01-25 02:36:51
【问题描述】:

有没有办法在 MySQL 中将字符串转换为 UNIX 时间戳?

例如,我有字符串2011-12-21 02:20pm,它需要采用 Unix 时间戳格式。

【问题讨论】:

标签: mysql sql timestamp


【解决方案1】:

虽然@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 个参数具有匹配的 '-' 和 ':' 位置

【讨论】:

    【解决方案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')
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-20
      • 2015-01-09
      • 2016-07-17
      • 1970-01-01
      • 1970-01-01
      • 2012-02-15
      • 2021-12-22
      • 1970-01-01
      相关资源
      最近更新 更多