【问题标题】:MySQL date format convert "Fri, 06 Nov 2015 04:06:05 -0500"MySQL 日期格式转换“Fri, 06 Nov 2015 04:06:05 -0500”
【发布时间】:2018-05-19 22:36:12
【问题描述】:

我在 MySQL 中有 "Fri, 06 Nov 2015 04:06:05 -0500" 日期格式。

我想在 MySQL 查询中将其转换为 Y-m-d H:i:s 格式。有人可以帮忙吗?

我试过这个DATE_FORMAT("Fri, 06 Nov 2015 04:06:05 -0500", '%Y-%m-%d H:i:s') 但没有用。

【问题讨论】:

  • 您在日期字段中的数据类型是什么? mysql 仅支持 Y-m-d H:i:s 和时间戳格式。它可能是 varchar 数据类型..

标签: mysql date datetime date-format


【解决方案1】:

您需要在此处进行 两次 转换,以涵盖一般情况。首先,您需要将非标准时间戳转换为日期,然后您需要在所需的输出中格式化该日期。图解:

your timestamp string -> MySQL date -> some other string output

考虑这个查询:

SELECT
    DATE_FORMAT(STR_TO_DATE('Fri, 06 Nov 2015 04:06:05 -0500', '%a, %d %b %Y %H:%i:%S'),
                '%Y-%m-%d %H:%i:%s') AS output
FROM dual;

Demo

【讨论】:

    【解决方案2】:

    你可以在php中使用strtotime()..看起来很像。

    date('Y-m-d H:i:s', strtotime($row['col_name']));
    

    【讨论】:

      【解决方案3】:

      你可以试试这个

      <?php
           echo  date('Y-m-d H:i:s', strtotime("Fri, 06 Nov 2015 04:06:05 -0500"));
      ?>
      

      注意 - 在 strtotime() 函数中,您可以传递日期值,您可以将其转换。

      希望这会有所帮助!

      【讨论】:

      • 这个问题是针对 MySQL 而不是 PHP。
      【解决方案4】:

      DATE_FORMAT 无法识别您作为日期传递的字符串,您必须使用STR_TO_DATE() 并按如下方式匹配该字符串:

      STR_TO_DATE("Fri, 06 Nov 2015 04:06:05 -0500",'%a, %d %b %Y %H:%i:%s');
      

      这已经以Y-m-d H:i:s 格式输出。

      【讨论】: