如何在mysql中将varchar转换为datetime格式

时间:2013-03-13 20:43:04

标签: mysql

我正在尝试将varchar转换为日期时间 这就是我现在所拥有的,并不适合我。我总是得到有价值的

STR_TO_DATE(REPLACE(LEFT('5/16/2011 20:14 PM', LOCATE('M' , '5/16/2011 20:14 PM')-3), '/',','),'%m-%d-%Y %T')

以下代码返回5,16,2011 20:14

select REPLACE(LEFT('5/16/2011 20:14 PM', LOCATE('M' , '5/16/2011 20:14 PM')-3), '/',',')

我现在的输出是emply string。应该是2011-05-16 20:14:00

我怎样才能让它发挥作用?

感谢

1 个答案:

答案 0 :(得分:16)

如果您的varchar是这样的:

5/16/2011 20:14 PM

您可以使用以下方法将其转换为日期时间:

SELECT STR_TO_DATE('5/16/2011 20:14 PM', '%c/%e/%Y %H:%i')

或者这样就可以像你想要的那样格式化:

SELECT DATE_FORMAT(STR_TO_DATE('5/16/2011 20:14 PM', '%c/%e/%Y %H:%i'), '%Y-%m-%d %H:%m:%s')