mysql 中 str_to_date 返回 null 的原因
在 mysql 中执行以下查询时,temp 列返回 NULL:
SELECT STR_TO_DATE(plan_start_time, '%h:%i:%s') as temp, plan_start_time FROM base_stop_calendar;
其中,plan_start_time 是一个 varchar 类型的列,表示时间。
问题原因
这个问题的可能原因是:
- plan_start_time 列中存在无效的时间格式,与指定的格式 %h:%i:%s 不匹配。
- 格式字符串中使用了错误的大小写。如果使用小写的 h 而不是大写的 h,则会导致匹配 12 小时制的时间,而不是 24 小时制的时间。
为了解决这个问题,可以尝试以下方法:
- 检查 plan_start_time 列中的数据,确保它们符合 %h:%i:%s 格式。
- 使用 str_to_time 函数代替 str_to_date 函数,它更适合处理时间格式。
- 确保在格式字符串中使用正确的字符大小写。