3

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

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-DDsession_start_time是一个 varchar,它包含这样的字符串,HH:MM并且是一个 varchartime_format字段,也包含值AM,或者PM例如,连接后的字符串变成这样:2012-10-03 12:16 PM

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

4

1 回答 1

3

您使用了错误的日期格式:

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

它应该是:

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

因为

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

  2. %e用于未填充的日子,例如,"1"而不是"01".

于 2013-05-20T09:46:31.253 回答