0

我有一个 MYSQL 表,它有一个名为 timestamp 的列名,以字符串格式存储。此列中的时间戳采用以下格式,例如“20/10/2014 05:39 PM”

现在如何选择一行并将时间戳列动态转换为 24HR 格式。

基本上我想要这样的东西。 SELECT id, user, STR_TO_DATE(timestamp, '%d/%m/%Y %h:%i %p') as timestamp FROM mytable WHERE user="bob";

但这不起作用。看起来它没有识别STR_TO_DATEsql 函数中的时间戳变量,并且它为时间戳列重新调整了 NULL。

请帮忙。

4

2 回答 2

0

在我看来很好:

mysql> SELECT STR_TO_DATE('20/10/2014 05:39 PM', '%d/%m/%Y %h:%i %p');
+---------------------------------------------------------+
| STR_TO_DATE('20/10/2014 05:39 PM', '%d/%m/%Y %h:%i %p') |
+---------------------------------------------------------+
| 2014-10-20 17:39:00                                     |
+---------------------------------------------------------+

(我知道这应该是一个评论,但为了获得格式是一个答案。)

于 2015-02-23T02:12:10.263 回答
0

使用 date_format 函数代替 str_to_date: SELECT id, user, date_format(timestamp, '%d/%m/%Y %h:%i %p') as timestamp FROM mytable WHERE user="bob";

于 2020-02-25T21:40:14.810 回答