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

Jay*_*len 3 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')
Run Code Online (Sandbox Code Playgroud)

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

select REPLACE(LEFT('5/16/2011 20:14 PM', LOCATE('M' , '5/16/2011 20:14 PM')-3), '/',',')
Run Code Online (Sandbox Code Playgroud)

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

我怎样才能使这个工作?

谢谢

fth*_*lla 18

如果您的varchar是这样的:

5/16/2011 20:14 PM
Run Code Online (Sandbox Code Playgroud)

你可以使用这个将它转换为datetime:

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

或者像你想要的那样格式化它:

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