10

我在 MySQL 数据库中有一个格式为“17:16:28 Sep 13, 2011 PDT”的时间戳。数据库中字段的类型是 VARCHAR。我想将此 VARCHAR 转换为 MySQL 中 TIMESTAMP 类型的字段。

我尝试了本网站其他地方建议的一些解决方案,例如使用 string_to_time 函数,但这些解决方案都从不同类型的时间戳开始。

如何将上面提到的 VARCHAR 时间戳转换为 MySQL 识别的 TIMESTAMP,以便我可以按日期对数据进行排序?

4

2 回答 2

7

您可以通过在 MySQL 中使用STR_TO_DATE函数来做到这一点,试试这个:

SELECT STR_TO_DATE("17:16:28 Sep 13, 2011 PDT", '%H:%i:%s %b %d, %Y PDT');

编辑:

SELECT STR_TO_DATE(field_name, '%H:%i:%s %b %d, %Y PDT') AS new_time
FROM table_name;
于 2012-10-17T11:31:17.443 回答
2

使用带格式的 str_to_date:

select unix_timestamp(str_to_date("17:16:28 Sep 13, 2011 PDT","%T %b %d, %Y PDT"));

如果日部分(例如:13)不表示为 01、02..等。但是 1, 2, 3 当它只有一位时,将 %d 更改为 %e

请注意,因为时区将无法识别,它只是用于格式化的字符串文字!如果您对不同的记录有不同的时区,您应该使用 convert_tz() 函数来获取正确的时间戳。

于 2012-10-17T11:36:18.050 回答