无法在MySQL中将字符串转换为时间

时间:2013-05-20 09:36:59

标签: mysql datetime

这是一个查询,我希望在将三个字段连接成时间之后转换我形成的字符串:

SELECT STR_TO_DATE(
  CONCAT(session_date," ",session_start_time," ",time_format),
  '%Y-%M-%e %h:%i %p'
) as u_date FROM sessions

session_date是包含值YYYY-MM-DD的日期类型字段,session_start_time是包含此HH:MM字符串的varchar,time_format是一个字段, varchar也包含值AMPM因此,例如连接后的字符串变为如下所示:2012-10-03 12:16 PM

当我运行此查询时,我得到NULL结果是否有任何语法问题?因为如果我删除STR_TO_DATE字段连接没有任何错误

1 个答案:

答案 0 :(得分:3)

您使用的日期格式错误:

%Y-%M-%e %h:%i %p

应该是:

%Y-%m-%d %h:%i %p

由于

  1. %M用于文字月份,例如"January"

  2. %e适用于无衬垫日期,例如"1"代替"01"