我有一个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_DATE
sql函数内部的timestamp变量,并且无法将timestamp列的NULL调整为空。
请帮助。
对我来说不错:
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 |
+---------------------------------------------------------+
((我知道这应该是注释,但是为了得到格式,这是一个答案。)
使用date_format函数代替str_to_date:
SELECT id, user, date_format(timestamp, '%d/%m/%Y %h:%i %p') as timestamp FROM mytable WHERE user="bob";