这是一个查询,我希望在将三个字段连接成时间之后转换我形成的字符串:
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也包含值AM
或PM
因此,例如连接后的字符串变为如下所示:2012-10-03 12:16 PM
。
当我运行此查询时,我得到NULL结果是否有任何语法问题?因为如果我删除STR_TO_DATE
字段连接没有任何错误
答案 0 :(得分:3)
您使用的日期格式错误:
%Y-%M-%e %h:%i %p
应该是:
%Y-%m-%d %h:%i %p
由于
%M
用于文字月份,例如"January"
%e
适用于无衬垫日期,例如"1"
代替"01"
。