mysql查询中str_to_date函数返回null的原因
select str_to_date(plan_start_time, '%h:%i:%s') as temp ,plan_start_time from base_stop_calendar
其中plan_start_time是varchar类型。
原因分析:
从提供的代码和错误提示中可以看出,str_to_date函数的格式化字符串‘%h:%i:%s’中包含小写字母’h’,而plan_start_time字段中的时间格式使用的是大写字母’h’。这使得str_to_date函数无法正确解析字段中的时间值,从而返回null。
解决方法:
将格式化字符串中的’h’改为’h’,确保与plan_start_time字段中的时间格式一致。
修改后的查询代码:
select str_to_date(plan_start_time, '%h:%i:%s') as temp ,plan_start_time from base_stop_calendar
这样,str_to_date函数就能正确解析时间值,temp也不会再返回null。